Servidor IDA Pro MCP
Un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de IA interactuar con IDA Pro para tareas de ingeniería inversa y análisis binario.
Descripción general
Este proyecto conecta los asistentes de IA con IDA Pro, un popular desensamblador y depurador utilizado para la ingeniería inversa de software. Consta de tres componentes principales:
Complemento de control remoto de IDA Pro (
ida_remote_server.py
): un complemento de IDA Pro que crea un servidor HTTP para controlar de forma remota las funciones de IDA Pro.Cliente remoto IDA (
idaremoteclient.ts
): un cliente TypeScript para interactuar con el servidor de control remoto IDA Pro.Servidor MCP (
index.ts
): un servidor de protocolo de contexto de modelo que expone la funcionalidad de IDA Pro a los asistentes de IA.
Características
Ejecute scripts de Python en IDA Pro desde asistentes de IA
Recuperar información sobre los binarios:
Instrumentos de cuerda
Importaciones
Exportaciones
Funciones
Capacidades avanzadas de análisis binario:
Búsqueda de valores inmediatos en las instrucciones
Buscar cadenas de texto en el binario
Buscar secuencias de bytes específicas
Obtener desmontaje para rangos de direcciones
Automatice las operaciones de IDA Pro a través de una interfaz estandarizada
Comunicación segura entre componentes
Prerrequisitos
IDA Pro 8.3 o posterior
Node.js 18 o posterior
Mecanografiado
Ejemplo de uso ida_remote_server.py
Ejemplo de uso del servidor MCP
Instalación
1. Instale el complemento de control remoto IDA Pro
Copie
ida_remote_server.py
a su directorio de complementos de IDA Pro:Windows:
%PROGRAMFILES%\IDA Pro\plugins
macOS:
/Applications/IDA Pro.app/Contents/MacOS/plugins
Linux:
/opt/idapro/plugins
Inicie IDA Pro y abra un archivo binario.
El complemento iniciará automáticamente un servidor HTTP en
127.0.0.1:9045
.
2. Instalar el servidor MCP
Clonar este repositorio:
git clone <repository-url> cd ida-serverInstalar dependencias:
npm installConstruir el proyecto:
npm run buildConfigure el servidor MCP en el archivo de configuración MCP de su asistente de IA:
{ "mcpServers": { "ida-pro": { "command": "node", "args": ["path/to/ida-server/dist/index.js"], "env": {} } } }
Uso
Una vez instalado y configurado, el servidor MCP proporciona la siguiente herramienta a los asistentes de IA:
comando_ejecutar_ida
Ejecuta un script de Python de IDA Pro.
Parámetros:
scriptPath
(obligatorio): ruta absoluta al archivo de script a ejecutaroutputPath
(opcional): ruta absoluta donde guardar la salida del script
Ejemplo:
El asistente de IA puede entonces usar este script con:
valor_inmediato_de_búsqueda
Busca valores inmediatos en las instrucciones del binario.
Parámetros:
value
(obligatorio): Valor a buscar (número o cadena)radix
(opcional): Base para conversión de números (predeterminado: 16)startAddress
(opcional): Dirección de inicio para la búsquedaendAddress
(opcional): Dirección final para la búsqueda
Ejemplo:
texto de búsqueda
Busca cadenas de texto en el binario.
Parámetros:
text
(obligatorio): Texto a buscarcaseSensitive
(opcional): si la búsqueda distingue entre mayúsculas y minúsculas (valor predeterminado: falso)startAddress
(opcional): Dirección de inicio para la búsquedaendAddress
(opcional): Dirección final para la búsqueda
Ejemplo:
secuencia_de_bytes_de_búsqueda
Busca una secuencia de bytes específica en el binario.
Parámetros:
bytes
(obligatorio): secuencia de bytes a buscar (por ejemplo, "90 90 90" para tres NOP)startAddress
(opcional): Dirección de inicio para la búsquedaendAddress
(opcional): Dirección final para la búsqueda
Ejemplo:
obtener_desmontaje
Obtiene el desmontaje para un rango de direcciones.
Parámetros:
startAddress
(obligatorio): Dirección de inicio para el desmontajeendAddress
(opcional): Dirección final para el desmontajecount
(opcional): Número de instrucciones para desmontar
Ejemplo:
obtener_funciones
Obtiene la lista de funciones del binario.
Parámetros:
No se requiere ninguno
Ejemplo:
obtener_exportaciones
Obtiene la lista de exportaciones del binario.
Parámetros:
No se requiere ninguno
Ejemplo:
obtener_cadenas
Obtiene la lista de cadenas del binario.
Parámetros:
No se requiere ninguno
Ejemplo:
API de control remoto de IDA Pro
El complemento de control remoto IDA Pro expone los siguientes puntos finales HTTP:
GET /api/info
: Obtener información del complementoGET /api/strings
: Obtener cadenas del binarioGET /api/exports
: Obtener exportaciones del binarioGET /api/imports
: Obtener importaciones del binarioGET /api/functions
: Obtener la lista de funcionesGET /api/search/immediate
: busca valores inmediatos en las instruccionesGET /api/search/text
: Busca texto en el binarioGET /api/search/bytes
: busca secuencias de bytes en el binarioGET /api/disassembly
: Obtener el desensamblado para un rango de direccionesPOST /api/execute
: Ejecutar script de Python (JSON/Formulario)POST /api/executebypath
: Ejecutar script de Python desde la ruta del archivoPOST /api/executebody
: Ejecutar script de Python desde el cuerpo sin formato
Consideraciones de seguridad
De forma predeterminada, el complemento de control remoto de IDA Pro solo escucha en 127.0.0.1
(localhost) por razones de seguridad. Esto impide el acceso remoto a su instancia de IDA Pro.
Si necesita permitir el acceso remoto, puede modificar la variable DEFAULT_HOST
en ida_remote_server.py
, pero tenga en cuenta las implicaciones de seguridad.
Desarrollo
Construyendo desde la fuente
Ejecución de pruebas
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo de LICENCIA para más detalles.
Autor
Florian Drechsler (@fdrechsler) fd@fdrechsler.com
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Un servidor de protocolo de contexto de modelo que permite a los asistentes de IA interactuar con IDA Pro para tareas de ingeniería inversa y análisis binario.
- Descripción general
- Características
- Prerrequisitos
- Instalación
- Uso
- API de control remoto de IDA Pro
- Consideraciones de seguridad
- Desarrollo
- Licencia
- Autor
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server for IDA interaction and automation. This server provides tools to read IDA database via Large Language Models.Last updated -19475MIT License
- AsecurityAlicenseAqualityMCP Server for automated reverse engineering with IDA Pro.Last updated -433,611MIT License
- -securityAlicense-qualityA Model Context Protocol server that allows AI assistants to invoke and interact with Integrator automation workflows through an API connection.Last updated -1MIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants to interact with Coda documents, allowing operations like listing, creating, reading, updating, and duplicating pages.Last updated -1012626MIT License