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

    • IDA désassembleur

    • HxD éditeur hexadécimal

    • Pied, studPE analyse les signatures des exécutables pour déterminer si les binaires sont compressés ou chiffrés

    • PEview : affiche les métadonnées d’un fichier PE (Portable Executable)

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

Liens