Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Outils open source — Gratuits, portables, hors ligne
Caractéristiques communes
100 % hors ligne — aucune donnée transmise
Portables — un seul fichier exécutable
Gratuits — MIT ou GPL v3
Code source ouvert sur GitHub
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Academy Contact

Ghidra Reverse Engineering

forensics

Définition

Ghidra Reverse Engineering désigne l'usage de la suite de rétro-ingénierie logicielle open source développée et publiée par la National Security Agency américaine en 2019, qui combine dans un même environnement intégré un désassembleur capable de traiter de multiples architectures processeur, x86, x86-64, ARM, MIPS et PowerPC entre autres, un décompilateur retranscrivant le code assembleur en pseudo-code de type C nettement plus lisible pour l'analyste, et un moteur de scripting permettant d'automatiser des analyses répétitives en Java ou en Python via l'intégration Jython et plus récemment Ghidrathon pour le Python natif. Ghidra permet d'analyser des binaires provenant de systèmes Windows, Linux, macOS ainsi que des firmwares embarqués issus d'équipements IoT et OT, identifiant automatiquement les frontières de fonctions, les signatures d'appel et les chaînes de caractères significatives pour accélérer la compréhension globale du binaire analysé. Sa capacité à révéler des vulnérabilités absentes de toute documentation publique en fait un outil de choix pour la recherche de failles sur des composants propriétaires. Sa fonctionnalité de collaboration multi-utilisateur, via un serveur de projet partagé, permet à plusieurs analystes de travailler simultanément sur un même binaire complexe lors d'une investigation forensique urgente, un cas d'usage fréquent en analyse de malware à grande échelle chez les éditeurs de threat intelligence.

Fonctionnement technique

Ghidra repose sur une architecture modulaire articulée autour de SLEIGH, un langage de description de jeux d'instructions qui traduit chaque opcode natif en P-Code, une représentation intermédiaire indépendante du processeur. C'est cette abstraction qui permet au décompilateur de produire du pseudo-C lisible aussi bien pour du x86-64 que pour de l'ARM Cortex-M ou du MIPS embarqué. Le pipeline d'analyse enchaîne l'identification du format de conteneur (PE, ELF, Mach-O, raw binary), la reconstruction des sections, la résolution des imports, la détection des fonctions par signatures de prologue, puis la propagation de types via les bases FID (Function ID) et les Data Type Archives.

Le projet partagé (Ghidra Server) autorise plusieurs analystes à annoter simultanément le même binaire avec versionnage, un atout rare en rétro-ingénierie collaborative.

Cas d'usage / Exemples concrets

  • Analyse de malware : extraction des chaînes chiffrées, reconstruction de l'algorithme de déchiffrement d'un loader, identification des adresses de C2 pour alimenter les IOC.
  • Audit de firmware : chargement d'une image extraite d'une puce SPI, définition manuelle de la base d'adressage et de la mémoire mappée, recherche de comptes codés en dur dans un routeur ou un automate.
  • Recherche de vulnérabilités : repérage de strcpy, memcpy et arithmétiques de taille non vérifiées menant à un dépassement de tampon, puis validation par fuzzing.
  • Réponse à incident : caractérisation d'un implant récupéré lors d'une investigation forensique pour produire une règle YARA fiable.

Détection et indicateurs

Côté binaire analysé, plusieurs signaux trahissent une volonté d'entraver l'outil : sections à forte entropie révélant un packer, tables d'imports quasi vides avec résolution dynamique par hash d'API, instructions désalignées ou opaque predicates qui cassent le graphe de flot de contrôle, et routines anti-debug exploitant IsDebuggerPresent ou le timing rdtsc. Une décompilation produisant des blocs incohérents ou des fonctions démesurées indique généralement de l'obfuscation plutôt qu'un défaut de l'outil.

Contre-mesures / Remédiation

  • Analyser systématiquement les échantillons dans une sandbox isolée, réseau coupé, sur machine dédiée sans données sensibles.
  • Combiner analyse statique et dump mémoire post-déballage pour contourner les protections de compression.
  • Vérifier l'intégrité des extensions et scripts tiers avant exécution : un script Java Ghidra dispose des mêmes droits que l'utilisateur.
  • Côté défense produit, appliquer signature de code, durcissement du compilateur et suppression des symboles de débogage en production.

Outils recommandés

Ghidra se combine efficacement avec IDA Pro et radare2 pour recoupement, x64dbg ou GDB pour l'analyse dynamique, Binwalk pour l'extraction de firmware, et les extensions communautaires Ghidraiton (Ghidrathon), BinDiff ou Cartographer pour le suivi de couverture.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis