1. Ingénierie inverse (Reverse Engineering)
L'ingénierie inverse est le processus de décompilation du code binaire d'une application pour restaurer le code source original ou une forme proche de celui-ci.
Les fichiers APK d'Android ou les fichiers IPA d'iOS peuvent être analysés via une décompilation respective.
Cette méthode est principalement utilisée pour comprendre la logique interne d'une application ou pour comprendre les méthodes de communication des données.
Il est possible que l'analyse ne soit pas réalisable pour une application qui a été spécialement traitée pour éviter l'ingénierie inverse.
Ci-dessous, nous avons divisé l'ingénierie inverse des APK Android et des IPA iOS pour les résumer.
1.1. Ingénierie inverse des APK Android
Outils : jadx, APKTool, Dex2jar, etc.
1.1.1. Procédure d'ingénierie inverse des APK Android
Téléchargez le fichier APK depuis Google Play Store.
Utilisez des outils tels que APKTool pour décompiler le fichier APK.
Analysez le code source décompilé pour comprendre la logique de l'application, les points d'API, la structure des données, etc.
Analysez les paquets réseau ou vérifiez les journaux pour comprendre les méthodes de communication des données.
1.2. Ingénierie inverse des IPA iOS
Outils : Hopper, IDA Pro, Ghidra, etc.
1.2.1. Procédure d'ingénierie inverse des IPA iOS
Téléchargez le fichier IPA depuis l'App Store.
Décompilez le fichier IPA en utilisant l'outil choisi.
Analysez le code source décompilé pour comprendre la logique interne de l'application, les méthodes de communication des données, etc.
2. OCR
OCR (Reconnaissance Optique de Caractères) est une méthode pour capturer l'écran d'une application et extraire le texte de cette image.
La précision de l'OCR est influencée par divers facteurs.
La taille du texte, la police, la couleur de l'arrière-plan, etc., peuvent influencer la précision.
Il peut être difficile d'obtenir une précision élevée, donc ce n'est pas une méthode recommandée.
Cependant, dans des situations où l'accès à l'API ou au code source est impossible ou où il est difficile d'obtenir des données par d'autres moyens, cela peut être une méthode utile.
2.1. Outils OCR
Tesseract : Le moteur OCR open source le plus largement connu.
Google Cloud Vision API : Un service OCR fourni par Google, offrant une haute précision et prenant en charge de nombreuses langues.
ABBYY FineReader : Un logiciel OCR commercial offrant une haute précision.
2.2. Procédure avec les outils OCR
Capturez l'écran où les informations nécessaires de l'application sont affichées.
Pour améliorer la précision de l'OCR, un prétraitement de l'image peut être nécessaire. Cela peut inclure la suppression du bruit de l'image, l'ajustement de la luminosité et du contraste, etc.
Convertissez l'image prétraitée en texte à l'aide de l'outil OCR.
Comme le texte obtenu par OCR peut ne pas être net ou contenir des erreurs, il est nécessaire de le corriger.
Analysez le texte corrigé et enregistrez les données nécessaires.
3. Sniffing de paquets (Packet Sniffing)
Le sniffing de paquets consiste à capturer et analyser les paquets de données dans un réseau.
Cette méthode est utile pour comprendre comment une application communique avec un serveur lors du crawling de l'application.
Le sniffing de paquets permet d'analyser la logique interne de l'application, les points d'API utilisés, les mécanismes d'authentification, etc.
3.1. Outils de sniffing de paquets
Wireshark : L'outil de sniffing de paquets le plus largement utilisé.
Charles Proxy : Principalement utilisé pour le développement web et l'analyse d'applications mobiles. Il offre une fonctionnalité de proxy SSL permettant d'analyser le trafic HTTPS.
MITMproxy : Analyse le trafic en simulant une attaque de l'homme du milieu (Man-in-the-Middle).
tcpdump : Outil d'analyse de paquets basé sur du texte, utile dans les environnements serveur.
3.2. Procédure de sniffing de paquets
Installez l'outil de sniffing de paquets et configurez éventuellement un proxy sur l'application ou l'appareil.
Exécutez l'application et capturez le trafic à l'aide de l'outil de sniffing de paquets pendant les échanges de données.
Analysez les paquets capturés pour comprendre les points d'API, les protocoles utilisés, les formats de données transmis, etc.
Après avoir identifié les points d'API nécessaires, comprenez comment envoyer des requêtes à ces points et recevoir des réponses.
En général, les API RESTful utilisent des méthodes HTTP telles que GET, POST, PUT, DELETE, etc.Une fois que vous avez identifié les données ou les modèles nécessaires, écrivez le code de crawling en conséquence.
4. Conclusion
Les API endpoints peuvent exposer des informations sensibles telles que les informations de connexion des utilisateurs. De plus, étant donné que les endpoints API peuvent changer avec les mises à jour de l'application, il est recommandé de prendre des mesures préventives et de gérer cela de manière appropriée.
Consultez également cet article :
Collecte de données, automatisez maintenant
Commencez en 5 minutes sans coder · Expérience de crawling sur plus de 5 000 sites web




