Reverse engineering
Dec. 30, 2024
Le reverse engineering consiste à analyser un logiciel ou un système pour en comprendre le fonctionnement interne, souvent dans le but de détecter des vulnérabilités, d’améliorer la sécurité ou de comprendre le code sans avoir accès aux sources.
Le processus de reverse engineering inclut la désassemblage en assembleur pour examiner les instructions machine et l’utilisation de décompilateurs pour reconstruire un code source plus compréhensible. Ce processus ne se limite pas aux binaires compilés en C ou C++, il s’applique également à d’autres langages comme .NET, Python et Java, où des outils spécifiques sont utilisés pour extraire et analyser le code.
Outils
- Décompilateurs
- radare2 : Framework CLI puissant pour l’analyse statique et dynamique des binaires.
- Ghidra : Décompilateur open-source de la NSA avec une interface graphique collaborative.
- IDA Free : Version gratuite d’IDA Pro pour l’analyse statique multi-architectures.
- Binary Ninja : Décompilateur simple d’utilisation avec une API Python pour l’automatisation.
- PyLingual : Décompilateur de fichier compilé Python.
- JD-Gui: Décompilateur de java.
- Jadx : Décompilateur d’APK.
- dnSpy : Décompilateur et déboggueurs de programme .NET.
- Déboggueurs
- GDB GEF : Débogueur amélioré avec une interface conviviale pour analyser et manipuler les binaires Linux.
- x64dbg : Débogueur open-source pour Windows, utile pour analyser les programmes et identifier les failles.
- WinDBG : Débogueur officiel de Microsoft, conçu pour analyser et déboguer les applications Windows.
- Angr : Framework d’analyse symbolique pour l’exploration et l’exploitation des binaires.
- GodBolt : Outil en ligne permettant de visualiser le code assembleur généré à partir de code source dans différents compilateurs.
- DogBolt : Outil permettant l’analyse de binaires pour la rétro-ingénierie, particulièrement axé sur l’analyse des binaires Windows.
Lectures
Vidéos
Défis
- PicoCTF Reverse Engineering challenges : Défis de rétro-ingénierie proposés par PicoCTF pour tester et améliorer ses compétences en analyse de binaires.
- Reverse Engineering challenges : Plateforme offrant une variété de défis en rétro-ingénierie pour pratiquer l’analyse de binaires.
- CrackMes : Site de défis en rétro-ingénierie où les participants doivent résoudre des protections de logiciels en analysant les binaires.
- FLARE On : Plateforme offrant une variété de défis en rétro-ingénierie pour pratiquer l’analyse de binaires.