Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
diaphora-mcp — Servidor MCP para diffing binario automatizado. | Kitploit
Herramientas/GitHubGitHub/xteardx/diaphora-mcp
Análisis EstáticoAnálisis de VulnerabilidadesIngeniería InversaDepuradoresFuzzingAnálisis de BinariosExplotación de Binarios
GitHubxteardx/diaphora-mcp

diaphora-mcp

Servidor MCP para diffing binario automatizado.

Ver Repositorio
17383hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Leer en ruso

Diaphora MCP

Diaphora MCP es un servidor MCP (Model Context Protocol) para el diffing automatizado de binarios. Conecta Diaphora (el motor de diffing) e IDA Pro (el desensamblador) mediante el protocolo MCP, permitiendo que agentes de IA (como Claude Code) realicen comparaciones de archivos binarios, encuentren parches de seguridad y analicen cambios.

Características

  • Exportación: Convierte bases de datos .i64 / .idb analizadas al formato SQLite de Diaphora (mediante el modo sin interfaz de idat.exe)
  • Diffing: Compara dos bases de datos exportadas, filtra resultados por tipo de coincidencia y ratio
  • Análisis de Vulnerabilidades: Busca cambios relevantes para la seguridad usando coincidencia de palabras clave y heurísticas
  • Detección de Parches: Detecta automáticamente nuevas comprobaciones de límites, comprobaciones nulas, manejo de errores y cambios criptográficos
  • Clasificación: Clasifica las funciones cambiadas por importancia basándose en CFG, saltos de complejidad e indicadores de seguridad
  • Grafo de Llamadas: Compara rutas de llamadas (BFS, hasta N niveles) y detecta cambios de causa raíz en cascadas de llamadas
  • Transferencia de Metadatos: Prepara nombres, comentarios y prototipos para transferir entre bases de datos
  • Integración con IDA Pro MCP: Todas las herramientas devuelven direcciones y rutas de bases de datos listas para ser pasadas directamente a las herramientas de IDA Pro MCP

Instalación

1. Dependencias

  • Python 3.10+
  • IDA Pro 8.x / 9.x (para exportaciones sin interfaz mediante idat.exe)
  • Diaphora plugin instalado en IDA
  • Claude Code (o cualquier otro cliente compatible con MCP)

2. Instalación del Paquete

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

3. Configuración de Rutas

El paquete intenta encontrar automáticamente IDA Pro y Diaphora en las ubicaciones de instalación estándar. Si no los encuentra, puede configurar las siguientes variables de entorno:

VariableDescripciónEjemplo
IDAT_PATHRuta completa a idat.exeC:\Program Files\IDA Pro 9.3\idat.exe
DIAPHORA_DIRCarpeta que contiene diaphora.pyC:\Program Files\IDA Pro 9.3\plugins\diaphora-3.4.1
DIAPHORA_OUTPUT_ROOTDirectorio raíz permitido para nuevos archivos de exportaciónD:\\diaphora-outputs
DIAPHORA_PYTHONIntérprete de Python para el diff/usr/bin/python3 (por defecto usa sys.executable)

Para Claude Code, puede especificarlas en ~/.claude.json (o el archivo de configuración correspondiente de su cliente 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
    }
  }
}

Nota: Para binarios muy grandes (>100 MB), asegúrese de que el timeout sea al menos 7200 (2 horas).

3.1. Codex e IDA MCP sin interfaz gráfica

Codex normalmente usa dos servidores MCP complementarios:

  • diaphora-mcp — este proyecto: exportación, diff con Diaphora y análisis de resultados;
  • ida-pro-mcp — el servidor de inspección IDA upstream para idb_open, descompilación y análisis a nivel de dirección.

idalib-mcp es el backend sin interfaz de ida-pro-mcp, no un servidor Diaphora separado. Después de instalarlo, reinicie Codex:

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

Para este proyecto, una configuración stdio es suficiente:

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

4. Preparando Bases de Datos para el Diffing

IDA Pro debe analizar primero los binarios (creando archivos .i64 o .idb). Después de eso:

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

O ejecute el pipeline completo en un solo comando:

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

No pase .i64 directamente a las herramientas de resultados: es una base de datos de IDA, no SQLite. Expórtela primero.

Inicio Rápido

┃ # 1. Pipeline completo: exportar dos .i64 → diff → informe resumen
┃ batch_export_and_diff(idb1="v1.0.i64", idb2="v1.1.i64")
 
┃ # 2. Si las bases de datos ya están exportadas
┃ diff_diaphora_dbs(db1="v1.0.sqlite", db2="v1.1.sqlite")
 
┃ # 3. Análisis de seguridad de los resultados del diff
┃ analyze_diff_results(results_path="v1.0_vs_v1.1.diaphora")
 
┃ # 4. Clasificación por importancia de los cambios
┃ rank_changes(results_path="v1.0_vs_v1.1.diaphora", top_n=20)
 
┃ # 5. Encontrar cambios de causa raíz
┃ find_patch_root(results_path="v1.0_vs_v1.1.diaphora")
 
┃ # 6. Detectar probables parches de seguridad
┃ detect_security_patches(results_path="v1.0_vs_v1.1.diaphora")
 
┃ # 7. Generar informe completo
┃ summarize_patch(results_path="v1.0_vs_v1.1.diaphora")

Ejemplo (Transcripción de Sesión en Vivo)

Consulte examples/basic-session.md para una transcripción completa paso a paso de una sesión real de Diaphora MCP, desde la exportación de dos bases de datos IDB hasta la comparación de funciones individuales. También disponible en ruso.

Aquí hay un adelanto de lo que devuelve el servidor:

Entrada — comparar dos DLLs de SQLite3 (2015 vs 2023):

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

Salida — resumen después de exportar + diff:

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

La sesión recorre 6 llamadas a herramientas MCP, mostrando el JSON exacto de entrada/salida para cada paso, junto con el razonamiento del agente.

Investigando una Base de Datos Individual

┃ # Obtener información de exportación de la base de datos
┃ get_export_info(db_path="app.sqlite")
 
┃ # Buscar funciones
┃ search_export_db(db_path="app.sqlite", name_pattern="%crypt%", min_instructions=50)
 
┃ # Recuperar pseudocódigo
┃ get_function_pseudocode(db_path="app.sqlite", address="401000")

Estructura del Proyecto

Descargar herramienta