
Enrutador MCP IDALib multisessión para agentes de codificación. Analiza múltiples binarios en paralelo con herramientas de ingeniería inversa compatibles con IDA.
Un endpoint de MCP. Muchas sesiones aisladas de IDALib.
Una capa de control ligera, orientada a agentes, para análisis binarios sin interfaz gráfica con el conjunto de herramientas MCP de IDA Pro.
[!IMPORTANT] Pocket Disasm es un proyecto independiente de código abierto. No está afiliado, respaldado, patrocinado ni es un producto oficial de Hex-Rays. IDA Pro e IDALib son productos de Hex-Rays y requieren una instalación y licencia válidas por separado. Pocket Disasm no distribuye IDA, IDALib ni ningún software de Hex-Rays.
Pocket Disasm ejecuta un router MCP público y asigna a cada binario su propio trabajador IDALib. Los agentes de codificación pueden crear, seleccionar, inspeccionar, guardar y cerrar sesiones de análisis sin lanzar una ventana interactiva de IDA independiente para cada archivo.
El proyecto utiliza una revisión fija de mrexodia/ida-pro-mcp como su implementación central de análisis MCP y catálogo de herramientas. Pocket Disasm construye su router unificado de múltiples sesiones, aislamiento de procesos, integraciones de agentes, diagnóstico y centro de control de terminal en torno a ese proyecto ascendente.
Ejecute un comando en PowerShell:
irm https://raw.githubusercontent.com/whoisqwerz/pocket_disasm/main/install.ps1 | iex
Luego abra una nueva terminal y ejecute:
pocket
El instalador crea un entorno Python aislado bajo %LOCALAPPDATA%\PocketDisasm, instala dependencias fijas, añade el comando pocket al PATH del usuario y abre el centro de control de terminal.
ida-pro-mcp.pocket.idalib.dll.El endpoint predeterminado es:
http://127.0.0.1:13339/mcp
El puerto se puede cambiar desde la TUI. Pocket Disasm actualiza cada archivo de configuración MCP que registró previamente y reinicia el router cuando es necesario.
Los agentes no necesitan un servidor MCP dedicado para cada binario. Crean y enrutan sesiones a través del endpoint compartido:
idb_open(input_path="C:\\samples\\first.exe", session_id="first", wait=true)
idb_open(input_path="C:\\samples\\second.dll", session_id="second", wait=true)
decompile(addr="main", database="first")
survey_binary(database="second")
La selección también puede limitarse al cliente MCP actual:
idb_select(database="first")
decompile(addr="main")
Esto permite que un modelo gestione varios binarios o que varios agentes trabajen a través del mismo router sin compartir una base de datos seleccionada.
flowchart LR
A1["Coding agent A"] --> MCP["Pocket Disasm MCP<br/>127.0.0.1:13339/mcp"]
A2["Coding agent B"] --> MCP
A3["Coding agent N"] --> MCP
MCP --> S["Multi-session supervisor"]
S --> W1["IDALib worker<br/>binary A"]
S --> W2["IDALib worker<br/>binary B"]
S --> WN["IDALib worker<br/>binary N"]
Pocket Disasm añade las siguientes herramientas al catálogo MCP de IDA regular:
Las herramientas de análisis regulares como survey_binary, lookup_funcs, func_query, find_bytes y decompile aceptan un argumento opcional database. Si se omite, Pocket Disasm usa la sesión seleccionada por ese cliente MCP.
La TUI fusiona solo la entrada MCP de pocket-disasm en los archivos de configuración existentes; no reemplaza todo el archivo.
La misma operación está disponible desde la CLI:
pocket integrate codex claude cursor --scope global
pocket integrate claude cursor vscode --scope project --project-dir .
La TUI cubre la instalación y control normales. La CLI permanece disponible para automatización y diagnóstico:
Ejecute pocket <command> --help para todas las opciones.
Pocket Disasm almacena su estado de usuario bajo:
%LOCALAPPDATA%\PocketDisasm
Los archivos importantes incluyen:
Use Inspect logs en la TUI o ejecute:
pocket logs
La TUI verifica una versión más nueva una vez que se inicia. Cuando hay una actualización disponible, Update Pocket Disasm aparece en la lista de acciones. El actualizador preserva la configuración, actualiza el entorno aislado, reinicia la TUI y vuelve a poner el router en línea si estaba ejecutándose anteriormente.
winget.Pocket Disasm no incluye IDA, IDALib ni una licencia de IDA. Es un proyecto independiente y no está afiliado ni respaldado por Hex-Rays.
$script = irm https://raw.githubusercontent.com/whoisqwerz/pocket_disasm/main/install.ps1
& ([scriptblock]::Create($script)) -Uninstall
Las entradas MCP de los agentes no se eliminan automáticamente a propósito, por lo que la configuración no relacionada nunca se reescribe durante la desinstalación. Se pueden eliminar de los archivos de configuración del agente correspondiente si ya no se necesitan.
Pocket Disasm se publica bajo la Licencia MIT.
| Herramienta | Propósito |
|---|
idb_open | Crear una sesión aislada para un binario local |
idb_list | Listar sesiones, estados, procesos y selección actual |
idb_select | Seleccionar una sesión predeterminada para el cliente MCP actual |
idb_health | Leer el inicio del trabajador y el estado del proceso |
idb_wait | Esperar el análisis automático de IDA y el inicio de MCP |
idb_save | Guardar la base de datos actual de IDA |
idb_logs | Leer la salida reciente de un trabajador |
idb_close | Detener un trabajador y liberar sus recursos |
| Agente | Configuración global | Configuración de proyecto |
|---|
| Codex | ~/.codex/config.toml | Se usa el endpoint global |
| Claude Code | ~/.claude.json | .mcp.json |
| Cursor | ~/.cursor/mcp.json | .cursor/mcp.json |
| VS Code | Perfil de usuario mcp.json | .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Se usa el endpoint global |
| Comando | Descripción |
|---|
pocket | Abrir el centro de control de terminal |
pocket doctor | Validar dependencias de Python, IDA, IDALib y MCP |
pocket start | Iniciar el router unificado en segundo plano |
pocket stop | Detener el router y sus trabajadores |
pocket restart | Reiniciar el router |
pocket status | Mostrar el estado del endpoint y del demonio |
pocket logs | Imprimir la salida de diagnóstico reciente |
pocket port <port> | Cambiar el endpoint en las configuraciones de agente registradas |
pocket config --max-workers <n> | Establecer el límite de trabajadores concurrentes |
pocket integrate <agents> | Configurar uno o más agentes de codificación |
| Archivo | Contenido |
|---|
config.json | Ruta de IDA, puertos de endpoint y límite de trabajadores |
integrations.json | Archivos de configuración MCP gestionados por Pocket Disasm |
events.log | Eventos estructurados del ciclo de vida y rastreos de excepciones |
pocket-disasm.out.log | Salida estándar del router |
pocket-disasm.err.log | Salida de errores del router |
sessions/<session>/worker.log | Salida persistente para un trabajador IDALib |
installer.log | Transcripción de instalación y actualización |
update.log | Salida del actualizador dentro de la TUI |