Serveur MCP faisant le pont entre la rétro-ingénierie de Ghidra et les outils d'IA : 256 outils pour la décompilation, l'émulation de P-code, le débogage en direct, l'analyse de flux de données, les opérations par lots et l'application des conventions dans les modes sans tête et graphique.
Si vous trouvez cela utile, merci de ⭐ mettre une étoile au dépôt — cela aide les autres à le découvrir !
Si Ghidra MCP vous fait gagner du temps, envisagez de sponsoriser le projet. Les soutiens ponctuels et récurrents aident tous deux à financer les mises à jour de compatibilité, le durcissement pour la production, la documentation et les nouveaux outils.
Un serveur Model Context Protocol (MCP) prêt pour la production qui fait le lien entre les puissantes capacités d'ingénierie inverse de Ghidra et les outils d'IA et frameworks d'automatisation modernes. 253 outils MCP, des workflows d'IA éprouvés, et l'intégration Ghidra-MCP la plus complète disponible — incluant désormais l'émulation P-code, l'intégration d'un débogueur en direct, et l'analyse de flux de données par graphe PCode.
La plupart des implémentations de Ghidra MCP vous offrent une poignée d'outils en lecture seule et s'arrêtent là. Ce projet est différent — il a été conçu par un ingénieur en reverse engineering qui l'utilise quotidiennement sur de vrais binaires, et non comme une démo.
Vous connaissez la situation : six mois après le début d'un projet, vous trouvez ProcessItem, process_items, handleItem et ItemProc dans la même base de code — quatre fonctions qui font la même chose, nommées par quatre sessions ou ingénieurs différents sans contrat partagé. Corriger cela prend plus de temps que nécessaire, et le problème se reproduira.
La v5.0 déplace les conventions du statut de « choses à retenir » vers la couche outil, où elles peuvent réellement être appliquées.
| Niveau | Comportement | Exemple |
|---|---|---|
| Correction automatique | Appliquée silencieusement | Champ count sur un uint32 → préfixé automatiquement en dwCount à l'enregistrement |
| Avertissement | La modification passe, un avertissement est renvoyé | processData → « le nom devrait être en PascalCase avec un verbe : ProcessData » |
| Rejet | Modification bloquée avec explication | Changement de type undefined → undefined → « no-op rejeté, type inchangé » |
Pour les agents d'IA, cela signifie une sortie cohérente à chaque session, chaque modèle, chaque exécution — sans coller un guide de style dans chaque prompt. L'outil connaît les règles ; le modèle n'a plus qu'à prendre la décision.
Pour les équipes, cela élimine toute la catégorie de commentaires de revue du type « ce n'est pas notre convention de nommage ». L'arbitrage des conventions reste dans l'outil, pas dans la revue de code.
Pour le travail en solo à grande échelle, analyze_function_completeness vous donne un score de 0 à 100 % qui mesure honnêtement : les déductions structurelles (artefacts du compilateur non corrigeables) sont pardonnées dans votre score effectif, la mise à l'échelle logarithmique empêche une mauvaise catégorie d'enterrer tout le reste, et la qualité graduée des commentaires de plaque signifie que vous savez exactement ce qui manque et pourquoi.