Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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
ida-pro-mcp — Servidor MCP determinista y local-first para IDA Pro/Home: 109 operaciones de ingeniería inversa con esquema estricto, hallazgos respaldados por evidencia y ediciones de IDB controladas por políticas. | Kitploit
Herramientas/GitHubGitHub/grecandrei/ida-pro-mcp
Análisis EstáticoIngeniería InversaScripting y AutomatizaciónDepuradoresAnálisis de MalwareUtilidades y FrameworksAnálisis de BinariosReversing Asistido por IASeguridad de IAAnálisis de Firmware
GitHubgrecandrei/ida-pro-mcp
8113hace 1 díaAún no revisado

ida-pro-mcp

Servidor MCP determinista y local-first para IDA Pro/Home: 109 operaciones de ingeniería inversa con esquema estricto, hallazgos respaldados por evidencia y ediciones de IDB controladas por políticas.

Ver RepositorioSitio web

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

IDA Pro MCP

IDA Pro MCP — análisis binario determinista para agentes de IA

IDA Pro MCP es un servidor local del Protocolo de Contexto de Modelo (MCP) para IDA Pro. Permite que un cliente MCP inspeccione un IDB, solicite a IDA resultados de análisis deterministas y, cuando se permite explícitamente, escriba anotaciones u otros cambios de vuelta en el IDB. El proceso anfitrión se ejecuta fuera de IDA e inicia un proceso IDA headless separado para cada sesión de forma predeterminada.

Por qué esta implementación

  • Superficie de agente determinista: 109 operaciones ida_* con esquema estricto y descubrimiento en vivo a través de tools/list e ida_help.
  • Arquitectura local-first: el host y el runtime de IDA se comunican a través de un puente de loopback protegido por token; ningún servicio LLM oculto se interpone en la ruta de análisis.
  • Evidencia, no solo chat: los hallazgos duraderos preservan procedencia, confianza, estado del ciclo de vida, conflictos e historial de auditoría fuera del IDB.
  • Mutaciones protegidas: las operaciones que modifican el IDB permanecen detrás de controles explícitos de política y reconocimiento de riesgos.
  • el instalador comprende más de 22 entornos de agentes y sus formatos de configuración JSON, JSON5, TOML y YAML.
Amplio soporte de clientes:

La versión actual es 1.0.0a3. Este es software alfa. Los nombres de operaciones públicas ida_*, los esquemas y el formato del espacio de trabajo pueden cambiar antes de una versión estable 1.0.0. La superficie de cliente predeterminada contiene 109 operaciones con esquema exacto. Utilice el descubrimiento en vivo para obtener el contrato completo: tools/list enumera cada operación con su esquema, e ida_help(topic="...") devuelve los argumentos exactos y un ejemplo para una operación.

Antes de instalar

Necesita:

  • IDA Pro o IDA Home 9.2 o posterior, con un ejecutable idat/idat64 utilizable. La evidencia de pruebas en vivo del repositorio cubre IDA 9.3 y 9.4; 9.2 es el mínimo de compatibilidad declarado.
  • Python 3.11 o posterior para el host y el instalador.
  • Permiso para ejecutar IDA en los binarios que planea inspeccionar, y suficiente espacio en disco para un entorno Python gestionado, archivos de sesión y copias de IDB.
  • Un cliente MCP que soporte un servidor stdio local, como Claude Code, Codex, OpenCode, Claude Desktop, Cursor, VS Code/Copilot, Windsurf, Cline, Roo Code, Gemini CLI o Antigravity.

El análisis normal no requiere un modelo de lenguaje ni un modelo de embeddings. Las funciones opcionales de búsqueda semántica utilizan un modelo local de forma predeterminada y permanecen deshabilitadas cuando no se configura ningún modelo.

El runtime predeterminado es idat: un proceso IDA headless por sesión. El backend idalib es experimental, requiere una instalación de IDA 9.3 o posterior con el paquete idapro activado, y no es necesario para una primera instalación.

Instalar desde el checkout del código fuente

El instalador crea un entorno gestionado bajo la raíz de instalación, instala una copia congelada del checkout en él y escribe la configuración del cliente para las ubicaciones de cliente soportadas. Desde la raíz del repositorio, ejecute:

root@kitploit:~
python3 install.py

Para una instalación conocida de IDA, pásala explícitamente:

root@kitploit:~
python3 install.py --ida-dir /path/to/ida-pro-9.3

Para una ejecución no interactiva:

root@kitploit:~
python3 install.py --yes --no-ida-prompt --ida-dir /path/to/ida-pro-9.3

El instalador también puede encontrar IDA a través de IDADIR, IDA_DIR, los ejecutables de IDA en PATH y directorios de instalación comunes. --ida-version selecciona una versión cuando hay más de una instalación presente. Use --dry-run para inspeccionar primero los cambios planificados.

El instalador no descarga un modelo de embeddings a menos que usted seleccione o solicite uno. Puede crear o actualizar archivos de configuración para cada ubicación de cliente en su mapa de clientes integrado, incluidos los clientes que no están instalados en su máquina. Revise install-report.json en la raíz de instalación y elimine las entradas no utilizadas si es necesario. Los archivos de configuración regulares existentes se respaldan antes de modificarlos; los archivos malformados, con enlaces simbólicos o no regulares se rechazan en lugar de sobrescribirse.

Reinicie el cliente MCP después de la instalación para que recargue su configuración.

Los arneses de agentes descubren la superficie de herramientas en vivo: tools/list enumera cada operación con su esquema, e ida_help(topic="...") devuelve los argumentos exactos y un ejemplo. No se instalan archivos de habilidades estáticos.

La raíz de instalación predeterminada es:

  • Linux y macOS: ~/.local/share/ida-pro-mcp
  • Windows: %LOCALAPPDATA%/ida-pro-mcp

Establezca IDA_PRO_MCP_HOME o pase --install-root para elegir otra ubicación.

Instalar desde un artefacto de release

Las versiones alfa son construidas por GitHub Actions y publicadas manualmente como pre-releases. Cuando haya una versión disponible, descargue el activo bundle.zip o bundle.tar.gz y su archivo SHA256SUMS desde la página de releases. Verifique la suma de comprobación, extraiga el paquete y ejecute el instalador desde su directorio de nivel superior:

root@kitploit:~
python3 install.py --yes --no-ida-prompt --ida-dir /path/to/ida-pro-9.3

La versión también contiene una wheel y una distribución de código fuente para instalaciones Python automatizadas. El paquete es la ruta más sencilla porque incluye el instalador y todos los archivos del proyecto necesarios para configurar un cliente MCP. Las versiones son de calidad alfa; conserve el binario original y el IDB y lea las notas de la versión antes de actualizar.

Conectar un cliente MCP

El instalador escribe la entrada del servidor para las rutas de configuración de cliente que conoce. Soporta Gemini CLI, Antigravity, Antigravity IDE, Antigravity CLI, Claude Code, Codex, Copilot CLI, OpenCode, Claude Desktop, Cursor, VS Code, Windsurf, Cline y Roo Code. OpenCode y los clientes de la familia Copilot utilizan formatos de configuración diferentes; deje que el instalador escriba esos archivos o siga la guía de configuración de OpenCode.

Para un cliente que utiliza el formato JSON común, la entrada es equivalente a:

root@kitploit:~
{
  "mcpServers": {
    "ida-pro-mcp": {
      "command": "/path/to/ida-pro-mcp/.venv/bin/python",
      "args": ["-u", "-m", "ida_pro_mcp.host.server"],
      "env": {
        "IDA_PRO_MCP_HOME": "/path/to/ida-pro-mcp",
        "IDADIR": "/path/to/ida-pro-9.3",
        "IDA_MCP_TOOL_SURFACE": "agent"
      }
    }
  }
}

En Windows, use el intérprete gestionado en <install-root>/.venv/Scripts/python.exe. Los detalles importantes son el intérprete gestionado, -u -m ida_pro_mcp.host.server, el directorio de IDA seleccionado y IDA_MCP_TOOL_SURFACE=agent. No apunte el cliente a install.py; ese archivo es el instalador, no el servidor MCP.

Después de cambiar la configuración de un cliente, reinicie completamente el cliente y verifique que ida_help aparezca en sus operaciones disponibles. Si el cliente muestra solo una interfaz heredada amplia tool(action=...), verifique que el entorno seleccione la superficie predeterminada agent en lugar de IDA_MCP_TOOL_SURFACE=legacy.

Una primera sesión útil

Use primero una ruta absoluta a un binario de prueba. Abrir un binario normalmente espera a que finalice el análisis inicial de IDA; un binario grande puede tardar.

root@kitploit:~
ida_open_binary(binary_path="/absolute/path/to/sample")
ida_session_status()
ida_overview()
ida_list_imports(limit=30)
ida_list_strings(query="http", limit=30)
ida_find(query="main", limit=20)
ida_decompile(address="<address returned by IDA>")
ida_xrefs_to(address="<same address>")

Use ida_help(topic="ida_decompile") siempre que necesite el esquema exacto de argumentos. Los esquemas de operaciones públicas son estrictos: los argumentos desconocidos se rechazan. Las direcciones pueden aceptarse como enteros o cadenas según el contrato de cada operación; use la forma mostrada por ida_help para la operación en su cliente.

Para un registro de investigación pequeño, las operaciones de hallazgos del espacio de trabajo son:

root@kitploit:~
ida_write_finding(title="Input reaches parser", address="<address returned by IDA>", kind="finding", status="confirmed", confidence=0.8, evidence=[{"type":"call", "value":"recv", "address":"<evidence address>"}])
ida_analysis_brief()
ida_next_target()
ida_export_findings(format="markdown")

Los hallazgos del espacio de trabajo se mantienen separados de las ediciones del IDB. Si la política activa permite la escritura en el espacio de trabajo, ida_write_finding registra un hallazgo localmente; de lo contrario, el servidor devuelve un error de política. ida_publish_findings(dry_run=true) previsualiza los cambios en el IDB. La publicación, el renombrado, el parcheo y otras mutaciones del IDB están sujetas a políticas y requieren el reconocimiento documentado de la operación donde la operación lo exponga.

Operaciones de un vistazo

La página principal se mantiene orientada a tareas, pero este índice compacto facilita el escaneo de la superficie pública. Cada nombre a continuación lleva el prefijo ida_ cuando se llama. Los esquemas y ejemplos completos están disponibles en vivo a través de tools/list e ida_help(topic="...").

GrupoOperaciones
Sesiónopen_binary, open_background, session_state, session_status, session_health, close_session, session_get, session_list, sso_activate, agent_login, agent_logout, session_switch
Descubrimientooverview, find, semantic_search, reranker_status, function_families, index_functions, index_status, cancel_index, list_functions, list_strings, list_imports, list_types, list_segments, list_sigs, sreg_get, sreg_list, auto_wait, events, registers, search_data_value, search_query_lang, r2_status, r2_bininfo, r2_load_hints, r2_disassemble_hypothesis, r2_vxrefs, fw_detect_vector_table, fw_detect_load_base, fw_detect_mmio, fw_rtos_scan, fw_carve
Códigodecompile, disassemble, compare_functions, diff_sessions, xrefs_to, callers, callees, read_bytes, get_type, callgraph, emulate
Hallazgos

Qué es seguro y qué no

La política base del servidor es assist. Una sesión puede endurecer la política base del operador pero no puede relajarla. La política es determinista; no decide que una operación riesgosa es segura porque un cliente la solicite.

La inspección de solo lectura es el punto de partida normal. Los ejemplos incluyen ida_overview, ida_find, ida_list_functions, ida_list_strings, ida_list_imports, ida_decompile, ida_disassemble, ida_xrefs_to, ida_callers, ida_callees, ida_callgraph, ida_read_bytes y las operaciones de cálculo. Estas aún consumen archivos locales y recursos de IDA, y el cliente MCP recibe sus resultados.

Las siguientes acciones cambian el estado duradero o ejecutan código y deben tratarse como de alto impacto:

  • ida_rename, ida_comment, ida_patch_bytes, cambios de función/tipo/segmento/datos, aplicación de firmas, ida_save_idb, instantáneas y operaciones de deshacer/restaurar pueden cambiar el IDB o el estado relacionado.
  • ida_publish_findings escribe hallazgos en el IDB. Ejecute primero su forma de simulación; la forma no simulada está protegida.
  • ida_close_session desmonta el runtime de IDA en vivo y es destructiva desde el punto de vista de la sesión.
  • ida_python ejecuta Python arbitrario en el proceso IDA activo. Está bloqueado en modo seguro y requiere un reconocimiento explícito de riesgo bajo la política normal.
  • ida_emulate es útil para comprobaciones controladas, pero las acciones mutantes del emulador requieren el reconocimiento correspondiente.
  • ida_til_export e ida_til_import acceden al sistema de archivos y están protegidas. Las rutas del sistema de archivos están restringidas por la raíz de memoria configurada donde se aplica esa protección.

No use --disable-policy como un indicador de conveniencia. Establece IDA_MCP_POLICY_MODE=off y deshabilita todas las puertas de política, incluidos los reconocimientos de escritura y otros controles de flujo de trabajo. Si se deniega una llamada, lea la entrada ida_help de la operación y proporcione el argumento de reconocimiento exacto solo cuando el esquema de esa operación lo soporte.

Mientras IDA aún realiza el análisis inicial, el modo seguro bloquea algunos análisis de binario completo, indexación y operaciones de script. Está destinado a mantener las llamadas de sesión temprana limitadas; sondee ida_session_status o ida_session_health en lugar de eludir la protección.

El puente escucha en loopback y utiliza un token por sesión. No es un servicio de red: no exponga ni reenvíe el puerto del puente a una red no confiable. Trate los scripts importados, rastros, binarios, datos de corpus y solicitudes de clientes como entrada no confiable.

Privacidad y manejo de datos

La ruta normal de host a IDA es local. El proyecto no ejecuta un servicio LLM integrado en la ruta de análisis, y la incrustación local es opcional. Eso no hace que todo el flujo de trabajo sea automáticamente offline:

  • El cliente MCP conectado recibe rutas, símbolos, cadenas, bytes, descompilación, hallazgos y otros resultados. El cliente o su proveedor de modelo puede transmitir ese contexto según su propia cuenta, modelo y configuración de retención. IDA Pro MCP no puede controlar esas transferencias.
  • Si selecciona explícitamente el backend de embeddings de Gemini, el servidor envía una firma de comportamiento compacta a Google en lugar de una descompilación completa. La firma aún puede contener llamadas derivadas del código, constantes, literales de cadena e información de flujo de control. No lo habilite para binarios que deben permanecer en la estación de trabajo.
  • Las descargas de dependencias del instalador, las descargas opcionales de modelos y llama-server, las descargas opcionales de corpus de amenazas y las integraciones externas de Rizin/radare2 pueden realizar solicitudes de red cuando están habilitadas.
  • La caché local, los registros, los metadatos de sesión, los IDB gestionados y el blackboard pueden contener rutas, metadatos de análisis y hallazgos. Proteja los directorios de instalación/datos. Si pasa una clave de Gemini AI Studio al instalador, la clave puede escribirse en el bloque de entorno del cliente MCP generado; prefiera una credencial basada en entorno y revise la configuración del cliente.

Para una configuración solo local, use el runtime local predeterminado, deje Gemini y otras descargas opcionales deshabilitadas, y configure el cliente MCP y su modelo según la política de datos de su organización. "Solo local" aún requiere verificar qué envía el cliente a su propio proveedor de modelo.

Solución de problemas comunes

El instalador no puede encontrar IDA

Pase el directorio de instalación explícitamente:

root@kitploit:~
python3 install.py --ida-dir /path/to/ida-pro-9.3

También puede establecer IDADIR o IDA_DIR. Si se encuentran varias instalaciones, use --ida-version 9.3 o --no-ida-prompt para controlar la selección. Confirme que el directorio seleccionado contiene un idat o idat64 ejecutable.

El cliente no muestra IDA Pro MCP

Reinicie el cliente e inspeccione su entrada de configuración. Confirme que su comando usa el Python del venv gestionado y -u -m ida_pro_mcp.host.server, y que el bloque env contiene el IDADIR correcto. Revise install-report.json; el instalador registra los fallos de actualización del cliente y mantiene copias de seguridad junto a los archivos modificados. Las formas de configuración de OpenCode y la familia Copilot difieren del ejemplo JSON común.

Abrir un binario tarda mucho o parece atascado

La llamada normal ida_open_binary espera el análisis inicial. Verifique ida_session_status e ida_session_health, permita más tiempo para un binario grande y revise los registros por sesión bajo el directorio de instalación/datos. La operación de apertura en segundo plano está disponible, pero está destinada a casos en los que comprende su comportamiento asíncrono y las restricciones del modo seguro.

Se deniega una operación de escritura

Esto suele ser la política funcionando según lo configurado. Use ida_help para inspeccionar el esquema exacto de la operación y su requisito de reconocimiento. No agregue argumentos arbitrarios: los esquemas son estrictos. Revise IDA_MCP_POLICY_MODE y el archivo de política del operador antes de cambiar la política. Deshabilitar todas las puertas de política es una elección separada y deliberadamente insegura.

La búsqueda semántica no está disponible

La búsqueda semántica es opcional y requiere un índice y un backend de embeddings compatible. El listado ordinario, la búsqueda, la descompilación y el trabajo de referencias cruzadas no la requieren. Para configurar la ruta local opcional, use las opciones explícitas de embedder del instalador, por ejemplo:

root@kitploit:~
python3 install.py --setup-embedder

El instalador también puede ejecutar --embedder-doctor, usar una ruta de modelo explícita o descargar un modelo seleccionado y llama-server cuando se solicite. Las licencias de modelos, el uso de disco y las descargas de red son su responsabilidad. Si falta el modelo, el servidor debe informar que la búsqueda semántica no está disponible en lugar de pretender que se ejecutó.

El instalador rechaza una configuración de cliente

Corrija la sintaxis JSON, JSONC o TOML reportada y vuelva a ejecutar el instalador. También rechaza rutas de configuración con enlaces simbólicos y no regulares para evitar sobrescribir un objetivo inesperado. Los archivos regulares existentes se respaldan; el comportamiento de reversión predeterminado del instalador puede restaurar esos respaldos si falla una fase posterior.

Falla una sesión o runtime de IDA

Verifique ida_session_health, el registro de sesión y el registro del puente. Confirme que el cliente usa la misma raíz de instalación y IDADIR que el instalador registró. El backend idat predeterminado da a cada sesión su propio proceso; no cambie al experimental idalib mientras diagnostica una instalación básica.

Material de referencia

  • Wiki del proyecto — guías orientadas a tareas de instalación, investigación, edición y solución de problemas.
  • Páginas wiki locales — el mismo material escrito a mano incluido para la herramienta wiki integrada.
  • Descubrimiento de operaciones en vivo — tools/list e ida_help exponen cada operación pública, esquema y ejemplo.
  • Modelo de seguridad — límites de confianza, modos de política, transporte loopback, propiedad de sesión y protecciones del sistema de archivos.
  • Espacio de trabajo de investigación — hallazgos, evidencia, objetivos y exportaciones.
  • Inteligencia y embeddings — backends de recuperación locales y opcionales de Gemini.
  • Configuración de OpenCode — configuración de OpenCode.
  • Arquitectura — host, runtime de IDA y flujo de datos para lectores que necesitan detalles de implementación.
  • Política de seguridad — informes y orientación de seguridad.
  • Pruebas en vivo de IDA — qué prueban y qué no prueban las pruebas del repositorio sobre una instalación real de IDA.
  • Versionado y lista de verificación de versiones y el changelog — estado alfa e historial de versiones.
  • Índice de documentación — el mapa completo de guías mantenidas, referencias, páginas wiki y notas de investigación.

Para nombres exactos de operaciones, use la referencia generada o pregunte al servidor en ejecución con ida_help. El backend anterior tool(action=...) permanece disponible por compatibilidad y se selecciona con IDA_MCP_TOOL_SURFACE=legacy; las nuevas integraciones deben usar la superficie ida_* con esquema exacto.

Descargar herramienta
write_finding, mark_examined, list_findings, search_findings, update_finding, export_findings, publish_findings, import_annotations, analysis_brief, next_target
Edicióncreate_function, change_function, rename, comment, patch_bytes, save_idb, make_code, undefine, rename_local, declare_type, apply_type, add_segment, set_segment_attrs, apply_sig, sreg_set, create_data, create_strlit, undo_begin, undo_end, add_entry, idb_snapshot, idb_restore_snapshot, struct_member_add, struct_member_del, struct_member_rename, struct_member_set_type, enum_member_add, enum_member_rename, enum_member_revalue, til_delete, til_export, til_import, mark_dangerous
Cálculocalc_eval, calc_offset, calc_convert, calc_resolve, calc_deref, calc_chain, calc_align, calc_bitops
Soportepython, continue, help
Flujo de trabajobatch