Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
diaphora-mcp — Serveur MCP pour le diffing binaire automatisé. | Kitploit
Outils/GitHubGitHub/xteardx/diaphora-mcp
Analyse StatiqueAnalyse des VulnérabilitésRétro-ingénierieDébogueursFuzzingAnalyse de BinairesExploitation de Binaires
GitHubxteardx/diaphora-mcp

diaphora-mcp

Serveur MCP pour le diffing binaire automatisé.

Voir le dépôt
17384il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Читать на русском языке

Diaphora MCP

Diaphora MCP est un serveur MCP (Model Context Protocol) pour le diffing binaire automatisé. Il connecte Diaphora (le moteur de diffing) et IDA Pro (le désassembleur) via le protocole MCP, permettant à des agents d'IA (comme Claude Code) d'effectuer des comparaisons de fichiers binaires, de trouver des correctifs de sécurité et d'analyser des changements.

Fonctionnalités

  • Export : Convertit les bases de données .i64 / .idb analysées au format SQLite de Diaphora (via le mode headless idat.exe)
  • Diffing : Compare deux bases exportées, filtre les résultats par type de correspondance et ratio
  • Analyse de vulnérabilité : Recherche les changements liés à la sécurité à l'aide de mots-clés et d'heuristiques
  • Détection de correctifs : Détecte automatiquement les nouvelles vérifications de limites, les vérifications nulles, la gestion des erreurs et les changements cryptographiques
  • Classement : Classe les fonctions modifiées par ordre d'importance en fonction du CFG, des sauts de complexité et des indicateurs de sécurité
  • Graphe d'appels : Compare les chemins d'appel (BFS, jusqu'à N niveaux) et détecte les causes racines dans les cascades d'appels
  • Transfert de métadonnées : Prépare les noms, commentaires et prototypes pour le transfert entre bases de données
  • Intégration IDA Pro MCP : Tous les outils renvoient des adresses et des chemins de base prêts à être transmis directement aux outils IDA Pro MCP

Installation

1. Dépendances

  • Python 3.10+
  • IDA Pro 8.x / 9.x (pour les exports headless via idat.exe)
  • Plugin Diaphora installé dans IDA
  • Claude Code (ou tout autre client compatible MCP)

2. Installation du paquet

git clone https://github.com/xTeardx/diaphora-mcp.git
cd diaphora-mcp
pip install -e .

3. Configuration des chemins

Le paquet essaie de trouver automatiquement IDA Pro et Diaphora dans les emplacements d'installation standard. S'ils ne sont pas trouvés, vous pouvez définir les variables d'environnement suivantes :

VariableDescriptionExemple
IDAT_PATHChemin complet vers idat.exeC:\Program Files\IDA Pro 9.3\idat.exe
DIAPHORA_DIRDossier contenant diaphora.pyC:\Program Files\IDA Pro 9.3\plugins\diaphora-3.4.1
DIAPHORA_OUTPUT_ROOTRépertoire racine autorisé pour les nouveaux fichiers d'exportD:\\diaphora-outputs
DIAPHORA_PYTHONInterpréteur Python pour le diff/usr/bin/python3 (par défaut sys.executable)

Pour Claude Code, vous pouvez les spécifier dans ~/.claude.json (ou le fichier de configuration correspondant de votre client MCP) :

{
  "mcpServers": {
    "diaphora": {
      "command": "python",
      "args": ["path/to/repo/diaphora_mcp_server.py"],
      "env": {
        "IDAT_PATH": "C:\\Program Files\\IDA Pro 9.3\\idat.exe",
        "DIAPHORA_DIR": "C:\\Program Files\\IDA Pro 9.3\\plugins\\diaphora-3.4.1"
      },
      "timeout": 7200
    }
  }
}

Remarque : Pour les très gros binaires (>100 Mo), assurez-vous que timeout est d'au moins 7200 (2 heures).

3.1. Codex et IDA MCP sans tête

Codex utilise généralement deux serveurs MCP complémentaires :

  • diaphora-mcp — ce projet : export, diff Diaphora et analyse des résultats ;
  • ida-pro-mcp — le serveur d'inspection IDA en amont pour idb_open, la décompilation et l'analyse au niveau des adresses.

idalib-mcp est le backend sans tête de ida-pro-mcp, pas un serveur Diaphora distinct. Après l'avoir installé, redémarrez Codex :

uv run ida-pro-mcp --install codex --transport streamable-http --scope global --ida-rpc http://127.0.0.1:8745/mcp

Pour ce projet, une configuration stdio est suffisante :

[mcp_servers.diaphora-mcp]
command = "python"
args = ["D:\\path\\to\\diaphora-mcp\\diaphora_mcp_server.py"]
startup_timeout_sec = 120

4. Préparation des bases de données pour le diffing

IDA Pro doit d'abord analyser les binaires (en créant des fichiers .i64 ou .idb). Après cela :

┃ export_idb_to_diaphora(idb_path="old_version.i64")
┃ export_idb_to_diaphora(idb_path="new_version.i64")

Ou exécutez le pipeline complet en une seule commande :

┃ batch_export_and_diff(idb1="old.i64", idb2="new.i64")

Ne transmettez pas directement .i64 aux outils de résultats : c'est une base de données IDA, pas SQLite. Exportez-la d'abord.

Démarrage rapide

┃ # 1. Pipeline complet : exporter deux .i64 → diff → rapport de synthèse
┃ batch_export_and_diff(idb1="v1.0.i64", idb2="v1.1.i64")
 
┃ # 2. Si les bases sont déjà exportées
┃ diff_diaphora_dbs(db1="v1.0.sqlite", db2="v1.1.sqlite")
 
┃ # 3. Analyse de sécurité des résultats du diff
┃ analyze_diff_results(results_path="v1.0_vs_v1.1.diaphora")
 
┃ # 4. Classement par importance des modifications
┃ rank_changes(results_path="v1.0_vs_v1.1.diaphora", top_n=20)
 
┃ # 5. Trouver les causes racines des modifications
┃ find_patch_root(results_path="v1.0_vs_v1.1.diaphora")
 
┃ # 6. Détecter les correctifs de sécurité probables
┃ detect_security_patches(results_path="v1.0_vs_v1.1.diaphora")
 
┃ # 7. Générer un rapport complet
┃ summarize_patch(results_path="v1.0_vs_v1.1.diaphora")

Exemple (transcription de session en direct)

Voir examples/basic-session.md pour une transcription complète étape par étape d'une session réelle Diaphora MCP — de l'export de deux bases IDB à la comparaison de fonctions individuelles. Également disponible en russe.

Voici un aperçu de ce que renvoie le serveur :

Entrée — comparer deux DLL SQLite3 (2015 vs 2023) :

{"idb1_path": "old.i64", "idb2_path": "new.i64", "use_decompiler": false}

Sortie — résumé après export + diff :

{
  "best_matches": 60,
  "partial_matches": 993,
  "multimatches": 52,
  "unmatched_primary": 2647
}

La session parcourt 6 appels d'outils MCP, montrant le JSON exact d'entrée/sortie pour chaque étape, avec le raisonnement de l'agent.

Investigation d'une seule base de données

┃ # Obtenir les informations d'export de la base
┃ get_export_info(db_path="app.sqlite")
 
┃ # Rechercher des fonctions
┃ search_export_db(db_path="app.sqlite", name_pattern="%crypt%", min_instructions=50)
 
┃ # Récupérer le pseudocode
┃ get_function_pseudocode(db_path="app.sqlite", address="401000")

Structure du projet

Télécharger l’outil