1 points par GN⁺ 2026-02-06 | 1 commentaires | Partager sur WhatsApp
  • 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é

1 commentaires

 
GN⁺ 2026-02-06
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

    • Je me demande ce qui la différencie du FunctionID natif de Ghidra ou du plugin BinDiff
    • Je me demande comment cela se compare à ReVa
      Le guide d’installation semble incomplet. Après installation dans Ghidra puis redémarrage, je ne vois pas GhidraMCP dans le menu Tools
    • J’ai essayé de l’utiliser moi-même, mais Ghidra ne reconnaît pas le plugin
      Je me demande si GH Discussions est le bon canal pour échanger
    • Je me demande ce qui le distingue des autres serveurs MCP pour Ghidra (pyghidra-mcp, ReVa, GhidrAssistMCP, etc.)
    • Je me demande s’il prend en charge la décompilation de binaires Android
  • 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

    • J’avais un logiciel créé autrefois qui demandait une authentification auprès d’un serveur qui n’existe plus, donc impossible à installer, et j’avais essayé sans succès de créer moi-même un Ghidra MCP
      C’est amusant de voir ce projet apparaître à ce moment-là
    • Cette branche a 110 commits d’avance sur le main de LaurieWired/GhidraMCP
  • 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

    • Moi aussi, j’expérimente le reverse engineering, et GPT-5.2 Codex est bien supérieur à Claude
      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

    • J’ai donné avec un ami un vieux jeu Unity à Claude, et il nous a produit un port complet en TypeScript
      Nous ajoutons maintenant des fonctions multijoueurs dans le navigateur
    • Le fait d’avoir extrait la clé depuis un shader est intrigant. J’aimerais en savoir plus sur la méthode concrète
    • J’ai moi aussi relié MCP à plusieurs outils pour tenter de reconstituer le code source et détecter des vulnérabilités à partir d’un binaire, et le résultat correspondait presque exactement au code réel
  • 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

    • En tant qu’employé de GitHub, assimiler le reverse engineering d’apps à l’OSS ne me fait pas très bonne impression
  • 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

    • Mais Gemini génère souvent du pseudo-code incomplet
      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

    • De nos jours, le lazy loading résout en partie les problèmes d’outils MCP
      Cela dit, les outils centrés sur la conversion d’API restent peu compatibles avec les LLM
    • Des outils de type skill basés sur vibecoded seraient probablement bien plus efficaces
  • 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

    • Quelqu’un a plaisanté : « Avec ce super-pouvoir, tu aurais aussi pu rendre le chiffreur plus fiable, non ? »
  • 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

    • Oui, et en plus l’IA peut aussi s’analyser elle-même
      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

    • Je pense que c’est vrai uniquement quand la CLI figure dans les données d’entraînement. Pour un nouvel outil, il faut de toute façon mettre toute la documentation dans le contexte
    • Ce projet a commencé avant que MCP ne prenne trop de place dans le contexte (LaurieWired/GhidraMCP)
    • Des outils récents comme Claude Code prennent désormais en charge le chargement basé sur la recherche d’outils, ce qui réduit fortement la surcharge de contexte de MCP
    • Je pense pareil. Si la description des 110 outils est toujours présente dans le contexte, cela ne fait qu’ajouter du bruit