Serveur MCP Ghidra – 110 outils pour le reverse engineering assisté par IA
(github.com/bethington)- Ghidra MCP Server est un serveur Model Context Protocol (MCP) qui relie les capacités de reverse engineering de Ghidra à des frameworks d’IA et d’automatisation
- Fournit de larges capacités d’analyse binaire via 110 outils MCP et 132 endpoints, dont l’analyse de fonctions, l’exploration de structures de données et l’extraction de chaînes
- Prend en charge le traitement par lots, les transactions atomiques et l’analyse en temps réel, avec exploitation possible via déploiement Docker et mode headless
- La fonction de transfert de documentation inter-binaire permet de faire correspondre automatiquement la documentation des fonctions entre différentes versions d’un même binaire
- Une plateforme permettant de mettre en œuvre des workflows de reverse engineering assistés par IA avec une stabilité de niveau production
Vue d’ensemble
- Ghidra MCP Server est un serveur MCP de niveau production qui relie le moteur d’analyse de Ghidra à des outils d’IA et à des systèmes d’automatisation
- Implémente entièrement le Model Context Protocol pour permettre l’interaction avec des modèles d’IA
- Expose les fonctionnalités de Ghidra via HTTP REST et le protocole MCP (stdio/SSE)
Fonctionnalités principales
- Intégration MCP cœur
- Compatibilité MCP complète, 110 outils MCP fournis, prise en charge des opérations par lots et des transactions atomiques
- Intégration en temps réel avec le moteur d’analyse de Ghidra
- Analyse binaire
- Décompilation de fonctions, graphes d’appels, références croisées, génération automatique de structures de données
- Inclut l’extraction de chaînes, l’analyse de tables de symboles, le mappage mémoire et la fonction de transfert de documentation inter-binaire
- Développement et automatisation
- Pipeline automatisé de build-test-déploiement-vérification
- Création, exécution et gestion de scripts Ghidra, comparaison multi-programmes, renommage massif et ajout d’annotations
Installation et exécution
- Prérequis : Java 21 LTS, Apache Maven 3.9+, Ghidra 12.0.2, Python 3.8+
- Procédure d’installation
- Cloner le dépôt puis installer les dépendances Python
- Copier 14 bibliothèques Ghidra puis compiler avec Maven
- Déployer le plugin dans le dossier des extensions Ghidra
- Modes d’exécution
- Choix entre le transport Stdio (par défaut, pour les outils d’IA) et le transport SSE (pour les clients Web/HTTP)
- Dans Ghidra, exécuter Tools > GhidraMCP > Start MCP Server
Performances et fiabilité
- Implémentation complète de 110 outils MCP, avec un temps de réponse inférieur à 1 seconde pour la plupart des opérations
- Architecture d’opérations par lots permettant une réduction de 93 % des appels API
- Toutes les opérations sont traitées via des transactions atomiques pour garantir la fiabilité
- Fournit des scripts de déploiement automatique tenant compte des versions
Configuration de l’API
- Opérations essentielles : vérification de connexion, consultation des métadonnées, informations de version, exploration des points d’entrée
- Analyse de fonctions : liste des fonctions, recherche par nom, décompilation, graphe des relations d’appel, évaluation de l’exhaustivité de la documentation
- Mémoire et données : liste des segments, désassemblage, références croisées, inspection du contenu mémoire
- Documentation inter-binaire : génération de hash de fonctions, export/application de documentation, appariement basé sur des hash
- Gestion des types de données : création de structures et d’énumérations, modification de champs, fusion de types en double
- Gestion des symboles et labels : listes d’import/export, analyse de chaînes, gestion des espaces de noms et des variables globales
- Renommage et annotations : renommage de fonctions, données et variables, définition de commentaires en masse
- Système de types : définition de prototypes de fonctions, définition du type des variables, consultation des conventions d’appel
- Gestion des scripts Ghidra : liste, exécution, sauvegarde, modification et suppression des scripts
- Prise en charge multi-programmes : basculement entre programmes ouverts, liste des fichiers du projet, comparaison de documentation
- Outils d’analyse : recherche de fonctions non définies, recherche basée sur des chaînes, recherche de motifs d’octets
Architecture
- Structure outil IA/automatisation ↔ pont MCP ↔ plugin Ghidra
bridge_mcp_ghidra.py: serveur Python qui convertit le protocole MCP en appels HTTPGhidraMCP.jar: plugin Java qui expose les fonctionnalités de Ghidra en HTTPghidra_scripts/: inclut plus de 70 scripts d’automatisation
Développement et build
- Build basé sur Maven et scripts de déploiement PowerShell fournis
- La structure du projet comprend un serveur Python, un plugin Java, des bibliothèques Ghidra, de la documentation, des exemples et des scripts de build
- Les 14 bibliothèques requises (environ 37 Mo) doivent être copiées depuis le chemin d’installation de Ghidra
- Inclut le déploiement automatique, les opérations par lots, les transactions atomiques et une journalisation détaillée
Documentation et workflows IA
- Le dossier docs/ contient la documentation complète, la structure du projet, les conventions de nommage et la notation hongroise
- Prompts de workflow IA : documentation de fonctions, appariement entre versions et prompts de démarrage rapide
- Historique des versions : détails par version dans CHANGELOG.md et docs/releases
Licence et état
- Sous Apache License 2.0
- Version 2.0.0, implémentation complète de 110 outils MCP, avec plus de 70 scripts Ghidra inclus
- Prêt pour un déploiement en environnement de production, adapté au reverse engineering assisté par IA
Projets associés
- re-universe : plateforme d’analyse de similarité binaire à grande échelle basée sur PostgreSQL
- cheat-engine-server-python : serveur MCP pour l’analyse mémoire dynamique et le débogage
Remerciements
- Remerciements à l’équipe Ghidra, aux développeurs du Model Context Protocol et aux contributeurs de la communauté
1 commentaires
Commentaires sur Hacker News
Le processus de reverse engineering sur plusieurs versions d’un logiciel était tellement pénible que ce projet a été créé
L’élément central est un système de hachage de fonctions normalisé, qui génère des hash à partir de la structure logique d’une fonction (instructions, opérandes, flux de contrôle)
Ainsi, même si le binaire est reconstruit ou rebasé, une même fonction conserve le même hash, et tous les commentaires, types et noms sont transférés automatiquement
Il inclut 110 outils via un pont MCP pour Ghidra, et peut s’intégrer à Claude, Claude Code ou d’autres clients MCP
Cela a été validé sur plusieurs versions patchées de Diablo II, avec transfert automatique possible de plus de 1 300 annotations de fonctions
Une intégration CI est aussi possible via un mode headless basé sur Docker
La v2.0.0 ajoute notamment un binding limité à localhost, des paramètres de timeout, la suppression de labels, la configuration
.env, etc.Les discussions sur l’approche de hachage ou la conception MCP sont bienvenues
Le guide d’installation semble incomplet. Après installation dans Ghidra puis redémarrage, je ne vois pas GhidraMCP dans le menu Tools
Je me demande si GH Discussions est le bon canal pour échanger
J’ai utilisé le serveur MCP Ghidra de LaurieWired, et l’analyse de binaires ainsi que la création de keygens étaient amusantes et simples
Je compte clairement essayer ce serveur MCP aussi
C’est amusant de voir ce projet apparaître à ce moment-là
Après avoir vu un collègue utiliser Ghidra avec Claude pour hacker le jeu River Ride, j’ai tenté l’expérience moi aussi
J’ai porté un ancien jeu PowerPC vers Apple Silicon, et après avoir essayé plusieurs MCP, Claude Code hallucinait souvent du code
Au final, j’ai obtenu les meilleurs résultats avec le mode headless de Cursor + GPT 5.2 Codex
Par exemple, il a entièrement restauré en 30 minutes un fichier C64-SID de 1 300 lignes
Je construis actuellement un système multi-agents pour rétroconcevoir un jeu C64 entier
Voir ce code d’exemple
Le reverse engineering avec l’IA est sous-estimé
J’ai réussi à extraire une clé de chiffrement d’une appli Android, alors qu’elle était cachée dans un shader et ne pouvait être obtenue qu’en exécutant réellement ce shader
Nous ajoutons maintenant des fonctions multijoueurs dans le navigateur
J’utilise depuis des mois la version à 15 outils de LaurieWired, et j’ai l’impression de voir la structure interne des applis de façon totalement transparente
Cela permet de traquer des bugs, créer des plugins et modifier des applis
Pour le code Objective-C, j’utilise aussi Hopper Disassembler
Article associé : Full recompilation with LLMs and Ghidra
Le reverse engineering avec des LLM est vraiment sous-estimé
Je restaure un jeu vieux de 30 ans, et quand je donne au modèle la sortie de décompilation de Ghidra et les informations de symboles en mode RAG, les résultats sont impressionnants
Même des modèles peu coûteux comme Gemini 3 Flash sont tout à fait utilisables
Il omet certaines parties de fonctions ou ne laisse que des commentaires à l’intérieur des blocs switch
À l’inverse, Claude Opus ou Qwen3-30B-A3B produisent du code bien plus abouti
La grande fenêtre de contexte de Gemini est un avantage, mais la verbosité de PCode impose en pratique beaucoup de limites
Je pensais qu’en reliant trop d’outils à MCP, les performances chuteraient, et cela ne me semble pas être une bonne conception
Cela dit, les outils centrés sur la conversion d’API restent peu compatibles avec les LLM
Je ne suis pas ingénieur en reverse, mais avec Claude Code et Ghidra MCP, j’ai amélioré un déchiffreur de ransomware
Quand j’ai récupéré plusieurs téraoctets de données, j’ai vraiment eu l’impression d’avoir acquis un super-pouvoir
Je pense que l’IA peut faire preuve de capacités surhumaines dans l’analyse binaire
Aujourd’hui, c’est un travail peu productif et ennuyeux, mais grâce à l’IA, cela pourrait aussi servir aux audits de sécurité ou à la défense contre les attaques de la supply chain
Le « skill-snitch » de MOOLLM surveille le fonctionnement d’autres skills, et « cursor-mirror » observe intégralement l’état interne de Cursor
Ces skills peuvent être combinés et appelés récursivement, et fonctionnent d’une manière « speed of light » bien plus rapide que MCP
Références : Leela MOOLLM Demo Transcript, speed-of-light skill, skill-snitch report
Je me demande pourquoi cela n’a pas été conçu en CLI. On dirait qu’aujourd’hui les LLM et les agents gèrent mieux les interfaces CLI