Une bibliothèque Python pour aider à contourner les claviers virtuels (vKeyboard)
(github.com/soulee-dev)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
- Préparez une image du clavier virtuel.
- Importez l’image du clavier virtuel dans Figma.
- Dans Figma, utilisez l’outil rectangle pour recouvrir chaque touche du clavier virtuel.
- Exportez le travail réalisé dans Figma au format SVG.
- Dans le terminal, saisissez la commande
vkeypad-studio [fichier image] [fichier SVG]. - Dans la nouvelle fenêtre qui s’ouvre, appuyez sur les touches du clavier correspondant à l’image.
- Conservez séparément les fichiers image et le fichier
data.jsongénérés dans le dossierassets.
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
Cela ne s’applique pas aux cas où la disposition des touches change en permanence ?
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.
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.
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.
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.