- 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 HTTP
GhidraMCP.jar : plugin Java qui expose les fonctionnalités de Ghidra en HTTP
ghidra_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é
Aucun commentaire pour le moment.