SFEIR
Technologie

Ghidra

Framework de rétro-ingénierie publié par la NSA en mars 2019 sous Apache 2.0 : désassembleur et décompilateur que des agents pilotent via REA ou GhidraMCP.

SFEIR AI · Publié le 23 octobre 2026

Un framework de rétro-ingénierie publié par la NSA

Ghidra est un framework de rétro-ingénierie logicielle (« software reverse engineering », SRE) « created and maintained by the National Security Agency Research Directorate », selon le README du dépôt. La NSA l'a rendu public en mars 2019 : le dépôt GitHub date du 1er mars 2019 et le journal des versions commence à la 9.0.1, datée du même mois. La licence est Apache 2.0, et le dépôt comptait 93 381 étoiles le 23 octobre 2026. Le projet continue de livrer : la 11.3 est sortie le 6 février 2025, la 12.1.4 le 21 septembre 2026 et la 12.2 le 22 octobre 2026.

Ghidra désassemble un binaire, reconstruit ses fonctions et produit un pseudocode proche du C, que l'analyste lit à la place de l'assembleur. Depuis la 11.3, PyGhidra, l'intégration Python, fait partie de la distribution : c'est ce que des projets tiers comme DelphiReSym exigent (Ghidra 11.3 ou plus récent), et ce que le mode headless de GhidraMCP utilise. Sous Linux arm64, le décompilateur natif ne vient pas compilé : Javier Cañete Arroyo a dû lancer gradlew buildNatives avant de décompiler un binaire C sans symboles avec Ghidra 12.1.4, et y retrouver les constantes 31, 9973 et 4242 qu'il y avait placées.

Comment REA pilote Ghidra

REA (Reverse Engineer Anything) ne contient aucun moteur natif : « Deep native analysis uses one of them [Hopper, Ghidra, IDA] », dit sa FAQ, et REA ne télécharge ni n'installe Ghidra ou Java. L'agent reçoit en retour du pseudocode, de l'assembleur, des chaînes, des symboles et des références croisées. Le README de REA précise que Ghidra « also supports 16-bit DOS analysis », ce qu'illustrent deux de ses démonstrations officielles : la reconstruction d'un calcul de panoramique sonore de DX-Ball (« passes 3,205 original-x86 cases and reproduces all 63 compiled function bytes ») et un calcul d'anneau de projectiles 16 bits du jeu PC-98 TH04. Un document séparé, docs/ghidra-nativeaot.md, couvre les corps natifs des applications .NET compilées en NativeAOT.

Le pont entre REA et Ghidra est authentifié par un jeton de capacité aléatoire propre à chaque session, sur socket Unix de l'utilisateur courant sous Linux et macOS, en TCP local authentifié sous Windows. Chaque session Ghidra ouvre un projet temporaire isolé, avec des répertoires privés et des limites de CPU et de mémoire, supprimé à la fermeture. Le fichier SECURITY.md de REA fixe la portée de ces mesures : « These controls limit accidental persistence and resource use; they do not make Ghidra a sandbox. » Un binaire piégé qui exploiterait une faille de l'importeur s'exécuterait avec les droits de l'utilisateur.

GhidraMCP, l'autre pont

GhidraMCP, publié par LaurieWired sous licence Apache 2.0 (11 494 étoiles le 23 octobre 2026, dernier push le 10 octobre), expose Ghidra à un agent par un serveur MCP dédié. Deux différences avec REA. GhidraMCP écrit dans le projet Ghidra (« Automatically rename methods and data »), là où REA en lit la sortie ; et il ne couvre que Ghidra, quand REA traverse les couches, du renderer Electron à l'add-on natif. Javier Cañete Arroyo en tire une règle de choix : si l'on ne fait que décompiler et que l'on a déjà IDA ou Ghidra, un pont mono-moteur ajoute moins de surface ; REA prend son sens quand la question traverse plusieurs formats.

Brian Crawford et Patrick McClure (arXiv, 29 mai 2026) ont montré, avec GhidraMCP en montage d'exemple, que des chaînes d'injection de prompt cachées dans un binaire peuvent amener un agent de rétro-ingénierie à rapporter qu'un programme fait autre chose que ce qu'il fait. Le décompilateur, lui, n'est pas trompé : c'est le modèle qui lit sa sortie qui l'est. D'où la lecture en deux temps que SFEIR applique dans l'offre AI Cyber : l'agent propose, un humain vérifie la preuve dans le pseudocode.

Le cas des applications legacy

Pour une application Delphi dont le code source est perdu, DelphiReSym (WenzWenzWenz, licence BSD-3-Clause) restaure dans Ghidra, via PyGhidra, le contexte sémantique tiré des métadonnées : versions Delphi 2010 puis XE à XE6 et suivantes, conçu pour « Delphi malware and legacy applications ». Les scripts dhrake (huettenhain) font le pont avec IDR, l'Interactive Delphi Reconstructor : IDR extrait les symboles en script IDC, DhrakeInit les importe dans Ghidra et DhrakeParseClass reconstruit les classes depuis la table des méthodes virtuelles. Pour Visual Basic 3, ghidra-vb3 (dfl, mai 2026) désassemble le p-code interprété par VBRUN300.DLL ; l'issue #4627 de REA, ouverte le 17 octobre 2026, propose d'y relier REA, qui rejette encore les exécutables Windows 16 bits au format NE. Ce que Ghidra rend lisible redevient spécifiable : c'est l'entrée de la démarche de modernisation du legacy.

Questions fréquentes

Qu'est-ce que Ghidra ?

Un framework de rétro-ingénierie logicielle créé et maintenu par la direction de la recherche de la NSA, rendu public en mars 2019 sous licence Apache 2.0. Il désassemble un binaire et en produit un pseudocode proche du C. La version 12.2 est sortie le 22 octobre 2026.

Ghidra est-il gratuit ?

Oui, le code et les binaires sont publiés sous licence Apache 2.0 sur GitHub. Il faut un JDK pour l'exécuter, et sous Linux arm64 compiler soi-même le décompilateur natif avec gradlew buildNatives, comme l'a fait Javier Cañete Arroyo pour tester REA 6.7.0 avec Ghidra 12.1.4.

Comment un agent de code utilise-t-il Ghidra ?

Par un pont MCP. REA pilote Ghidra en lecture (pseudocode, assembleur, chaînes, symboles) dans un projet temporaire authentifié par jeton de session ; GhidraMCP expose Ghidra seul et peut écrire dans le projet, par exemple renommer des méthodes. Dans les deux cas, ni REA ni GhidraMCP n'installent Ghidra à votre place.

Ghidra protège-t-il contre un binaire malveillant ?

Non. Ghidra analyse le fichier avec les droits de l'utilisateur qui le lance, et REA écrit que ses projets temporaires « do not make Ghidra a sandbox ». Un binaire inconnu s'analyse dans une machine virtuelle ou un conteneur dédié, et un agent qui lit la sortie peut être trompé par des chaînes d'injection de prompt cachées dans le binaire.

Sources

Ghidra dans vos projets

Échanger avec SFEIR

Articles liés

REA, GhidraMCP ou ida-pro-mcp : quel MCP de rétro-ingénierie choisir

REA, GhidraMCP ou ida-pro-mcp : quel MCP de rétro-ingénierie choisir

REA orchestre plusieurs moteurs et formats, GhidraMCP et ida-pro-mcp branchent un agent sur un seul décompilateur. Critères de choix en entreprise : couverture, coût des moteurs (IDA Pro Essential à partir de 1 099 €/an au 23/10/2026), droits d'écriture et poids dans le contexte.

Applications Delphi : ce que Ghidra et les agents permettent

Applications Delphi : ce que Ghidra et les agents permettent

Un exécutable Delphi garde après compilation une partie de ses métadonnées de classes et de formulaires. DelphiReSym, IDR et dhrake les remettent dans Ghidra ; un agent lit ensuite un pseudocode enrichi. État des lieux au 17 octobre 2026, et ce que REA couvre.

Rétro-ingénierie d'applications VB6 : peu de retours, un workflow possible

Rétro-ingénierie d'applications VB6 : peu de retours, un workflow possible

Visual Basic 6 fait encore tourner des applications métier dont le source a disparu. REA ne cite pas VB5/6 dans ses cibles documentées au 18 octobre 2026 ; les décompilateurs spécialisés restent la référence. Ce qu'on sait, ce qu'on ignore, et un workflow pour rétro-documenter.

PowerBuilder et NSDK : état des lieux de la rétro-ingénierie par agents

PowerBuilder et NSDK : état des lieux de la rétro-ingénierie par agents

PowerBuilder et NS-DK font encore tourner des applications de gestion critiques. Au 20 octobre 2026, aucun retour public de rétro-ingénierie par agents n'existe sur ces deux stacks, et REA ne les cite pas. Ce qui existe, ce qui manque, et la voie réaliste pour une DSI.

Analyser un malware en local avec un agent, sans l'exfiltrer

Analyser un malware en local avec un agent, sans l'exfiltrer

REA analyse un échantillon sur votre machine, sans l'envoyer à un service tiers. Mais les résultats partent chez le fournisseur du modèle, et l'outil n'est pas un bac à sable. Les règles d'une analyse de malware locale : statique seulement, VM dédiée, modèle local pour le sensible.

Firmware et objets connectés : la rétro-ingénierie par agents

Firmware et objets connectés : la rétro-ingénierie par agents

Octobre 2026 : des TV connectées débarrassées de leurs pubs, des objets abandonnés ressuscités. REA s'appuie sur Binwalk et Unblob pour extraire un firmware sans l'exécuter. Ce que l'outil fait vraiment, les usages défensifs et de continuité, et les risques d'un firmware réécrit par IA.

REA en trois schémas : architecture, fonctionnement et usage

REA en trois schémas : architecture, fonctionnement et usage

Comment un développeur installe REA, ce qui se passe quand son agent l'appelle, et comment s'en servir pour comprendre une fonctionnalité avant de la déboguer ou de la reproduire. Trois schémas, la doc officielle du dépôt et les tests publics d'octobre 2026.