Rétro-ingénierie¶
2025 Rétro-ingénierie
La rétro-ingénierie logicielle est l’art d’analyser le fonctionnement d’un programme sans avoir accès à son code source. Elle est utilisée dans divers contextes, comme l’analyse de logiciels malveillants, la détection de vulnérabilités, l’analyse des performances d’exécution, et la réécriture d’un programme dont le code source a été perdu…
Deux techniques sont possibles pour la rétro-ingénierie d’un programme : l’analyse dynamique et l’analyse statique. L’analyse dynamique consiste à évaluer le comportement d’un programme pendant son exécution. Cela contraste avec l’analyse statique, qui examine le code sans exécution. Ces deux techniques sont à la fois indépendantes et complémentaires.
Quelles que soient les techniques utilisées, une compréhension de base du langage assembleur est essentielle.
Outils pour l’analyse binaire (ELF/PE)¶
Analyse dynamique¶
Sur linux
Ghidra désassembleur - framework de rétro-ingénierie logicielle
REDasm désassembleur
hexcurse éditeur hexadécimal
objdump désassembleur qui prend en charge la syntaxe Intel et AT&T
strings extrait toutes les chaînes d’un fichier binaire
radare boîte à outils de rétro-ingénierie
nm liste tous les symboles
readelf affiche les métadonnées d’un fichier ELF
Sur windows
Analyse statique¶
Sur linux
strace surveille et enregistre tous les appels système effectués par un programme
ltrace surveille et enregistre les appels de fonctions de bibliothèque effectués par un programme
gdb gdb : le GNU Debugger, un puissant débogueur en ligne de commande
edb un débogueur multiplateforme basé sur Qt
lsof liste tous les fichiers ouverts et les connexions réseau
Sur windows
NtTrace surveille et journalise tous les appels à l’API Windows effectués par un programme
OllyDbg un débogueur d’analyse au niveau assembleur
TCPView fournit des listes détaillées de tous les points de terminaison TCP et UDP de votre système.
DiskMon un utilitaire système qui journalise et affiche toute l’activité du disque dur
PortMon un utilitaire système pour surveiller et journaliser l’activité des ports série et parallèle
Process Monitor un outil de surveillance avancé pour Windows qui affiche en temps réel l’activité du système de fichiers, du registre et des processus/threads