16 points par soulee 2023-04-11 | 5 commentaires | Partager sur WhatsApp

Les claviers virtuels (vKeyboard), largement utilisés comme programmes de sécurité sur les sites financiers, gouvernementaux, etc., sont l’un des principaux facteurs qui compliquent les opérations de crawling. Voici donc une bibliothèque Python qui propose une méthode pour contourner les claviers virtuels.

Le contournement du clavier virtuel repose sur une analyse de similarité avec des images capturées à l’avance. Pour cela, il faut d’abord préparer les images et les données du clavier virtuel à l’aide de vKeypad-Studio.

Mode d’emploi de vKeypad-Studio

  1. Préparez une image du clavier virtuel.
  2. Importez l’image du clavier virtuel dans Figma.
  3. Dans Figma, utilisez l’outil rectangle pour recouvrir chaque touche du clavier virtuel.
  4. Exportez le travail réalisé dans Figma au format SVG.
  5. Dans le terminal, saisissez la commande vkeypad-studio [fichier image] [fichier SVG].
  6. Dans la nouvelle fenêtre qui s’ouvre, appuyez sur les touches du clavier correspondant à l’image.
  7. Conservez séparément les fichiers image et le fichier data.json générés dans le dossier assets.

Vous pouvez ensuite utiliser la bibliothèque Python qui permet d’effectuer le contournement du clavier virtuel à partir des données préparées. Cela permet de faire avancer plus facilement les tâches de crawling sur les sites gouvernementaux ou financiers utilisant un clavier virtuel.

5 commentaires

 
roxie 2023-04-12

Cela ne s’applique pas aux cas où la disposition des touches change en permanence ?

 
soulee 2023-04-12

J’ai créé cela en partant du principe que la disposition des touches change en permanence.
Si vous générez à l’avance des images avec vkeypad-studio, il est possible de reconnaître les touches même lorsque leur disposition change, grâce à une analyse de similarité avec ces images.

 
roxie 2023-04-12

Ah, je vois… Avec seulement le README et la vidéo, il était difficile de comprendre le fonctionnement. Il ne me semblait pas non plus que cela devait absolument être Figma, donc le fait de le mentionner explicitement était aussi un peu déroutant. Quoi qu’il en soit, je l’essaierai plus tard, merci.

 
soulee 2023-04-12

Pour préciser, le principe de base consiste à identifier quelle touche se trouve à quel emplacement grâce à une analyse de similarité d’image.

Pour cette analyse de similarité, il faut une image pour chaque touche, et l’outil créé pour automatiser cela est vkeypad-studio.
Si l’on empile des rectangles sur l’image du clavier dans Figma, des calques s’accumulent dans le SVG. On extrait les coordonnées de ces calques pour rogner les images, puis on enregistre les coordonnées et le keycode.
Ensuite, c’est à partir de ces images enregistrées et des coordonnées qu’il devient possible d’analyser les touches.

En réalité, le choix d’imposer Figma visait simplement à faciliter l’usage pour les utilisateurs. La plupart des claviers virtuels ont une largeur fixe, et comme l’auto-align proposé par Figma est vraiment excellent, je pensais qu’il était acceptable de proposer ce workflow ainsi, mais il est possible qu’au final cela paraisse encore plus difficile.

 
soulee 2023-04-12

C’est de ma faute si je n’ai pas su l’expliquer correctement dans le readme... Je vais essayer de le retravailler pour qu’il soit plus clair à la lumière des remarques que vous avez formulées.