Salut,
Pour mon premier article dans la rubrique rétro-ingénierie (Reverse Engineering) j’ai décidé de vous parler de l’approche la plus simple pour étudier le comportement d’un binaire inconnu, bien entendu ce tutoriel est pour l’apprentissage des techniques utilisées et n’incite en cas à le faire pour des raisons malveillantes, le retro-ingénierie est interdit et peut être puni dans certains pays.
Les outils que je juge nécessaire pour commencer un désassemblage d’un binaire :
- Un éditeur Hexa : perso j’utilise Sweetscape 010Editor, en version free j’aime bien HxD Hex Editor.
- Un désassembleur : le plus connu et celui que j’utilise c’est celui de Hex-Rays Ida Pro Il existe en version gratuite en version pro avec plus de fonctionnalités.
- Une calculatrice de programmeur : celle de Windows suffit largement.
- Un cerveau et beaucoup de patience.
Une fois tout cela réuni….
Il faut d’abord prendre le host debugger adéquat pour l’environnement dans lequel notre bin est exécuté, qui se trouve dans le dossier d’installation d’IDA puis le dossier dbgsrv
1 |
D:\IDA 7.0\dbgsrv |
Dans notre cas (Android/Arm) je vais prendre le fichier android_server
La prochaine étape est de se connecter à notre device android (via ADB) afin de copier l’android_server
1 2 |
adb connect IP_DEVICE adb push android_server /CUSTOM_DIR |
puis il faut donner les droits d’execution à notre android_server et l’executer
1 2 |
chmod 775 /CUSTOM_DIR/android_server /CUSTOM_DIR/android_server |
Maintenant que notre host debugger est prêt nous pouvons attacher n’importe quel process à IDA afin de faire du Remote Debugging
Cette première partie se termine ici, dans la prochaine partie nous allons prendre un cas d’utilisation réel afin de voir les étapes et astuces qui faciliterons votre opération reverse ou analyse
A bientôt
So, what do you think ?