REST locale sicuro, CLI, MCP e bridge per agenti per IDA Pro 9.x
Livello di controllo autonomo AI e MCP per IDA Pro 9.x
Trasforma IDA Pro in una potente centrale per il reverse engineering agentico. Connetti Claude Desktop, Cursor, Antigravity o agenti LLM personalizzati tramite Model Context Protocol (MCP) o API REST ad alte prestazioni.
┌─────────────────────────────────────────────────────────┐
│ IDA Pro 9.x │
│ ph4ntom_ida_bridge.py (102 REST Endpoints) │
│ 127.0.0.1:13370 (Bearer Token Protected) │
└────────────────────────────┬────────────────────────────┘
│ REST / JSON / SSE
┌────────────────────────────────┼───────────────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ MCP Server │ │ CLI / SDK │ │ AI Agents │
│ 54 Tools │ │ `ph4ntom-ida`│ │ Multi-LLM │
│ Claude │ │ Automation │ │ Gemini │
│ Cursor │ │ Headless │ │ Ollama │
│ Antigravity │ │ Testing │ │ Claude / GPT │
└───────────────┘ └───────────────┘ └───────────────┘
ph4ntom IDA Bridge è un livello di controllo solo localhost per IDA Pro 9.x. Combina un plugin IDA autonomo, un'API REST JSON, un client Python, una CLI, 54 strumenti MCP nativi e backend AI standalone opzionali.
La versione 6.2.0 introduce la piena compatibilità con IDA 9.3, mutazioni atomiche del database, autenticazione tramite token a tempo costante, tracciamento del cursore SSE e copertura completa della suite di test.
Collega Claude Desktop, Cursor o qualsiasi client MCP alla tua istanza di IDA Pro in esecuzione in 60 secondi:
git clone https://github.com/ph4ntom-rev/ph4ntom-ida-bridge.git
cd ph4ntom-ida-bridge
python -m pip install -e ".[mcp]"
python cli.py install-plugin --ida-dir "C:\Program Files\IDA Professional 9.0"
(Oppure copia ida_plugin/ph4ntom_ida_bridge.py e api_schema.json direttamente nella tua directory plugins/ di IDA).
Modifica %APPDATA%\Claude\claude_desktop_config.json (Windows) o ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"ida-bridge": {
"command": "python",
"args": [
"C:/path/to/ph4ntom-ida-bridge/mcp_server.py"
]
}
}
}
Aggiungi a .cursor/mcp.json o in Cursor Settings → MCP:
{
"mcpServers": {
"ida-bridge": {
"command": "python",
"args": ["-m", "mcp_server"],
"cwd": "C:/path/to/ph4ntom-ida-bridge"
}
}
}
Avvia IDA Pro, premi Ctrl+Shift+A per attivare il server e invia al tuo assistente AI il seguente prompt:
"Ispeziona la funzione all'indirizzo 0x140001000. Traccia i riferimenti incrociati, analizza il microcodice, decompila in pseudocodice C e rinomina le variabili offuscate con nomi significativi."
| Funzionalità | ph4ntom IDA Bridge | Gepetto / IDAGPT | Hex-Rays Copilot |
|---|---|---|---|
| Architettura | MCP bidirezionale + REST + CLI | Singolo wrapper di prompt | Plugin UI proprietario |
| Numero di strumenti | 54 strumenti MCP granulari | 1 (prompt di decompilazione) | Azioni prompt fisse |
| AST e flusso di controllo | AST ctree completo + Microcode IR (0-7) | Solo testo dello pseudocodice | Solo testo dello pseudocodice |
| Mutazioni sicure | Mutazioni batch atomiche con rollback | Solo inserimento di commenti | Suggerimenti nell'UI |
| Debugger live | Registri, stack, memoria, breakpoint | No | No |
| Esecuzione dinamica | Motore di esecuzione IDAPython al volo | No | No |
| LLM supportati | Qualsiasi client MCP / Claude / GPT / Gemini / Ollama | Solo API OpenAI | Cloud proprietario |
| Sicurezza e autenticazione | Solo localhost, token a 256 bit, DACL del proprietario | Chiave API in chiaro esposta | Proprietario |
| Supporto IDA Pro 9.3 | Verificato e completamente testato | Non funzionante su IDA 9+ | Ufficiale |
Il server MCP espone 54 strumenti dedicati distribuiti su 7 domini di reverse engineering:
| Categoria | Strumenti | Descrizione |
|---|---|---|
| 🔍 Binario e segmenti | ping, get_binary_info, list_segments, read_bytes, read_vtable | Metadati del binario, bitness, permessi, estrazione delle vtable |
| 🧩 Decompilazione e AST | decompile, get_disassembly, get_ctree, get_microcode, get_local_variables, get_function_details | Pseudocodice C di Hex-Rays, AST ctree in JSON, Microcode IR (0=PREOPT fino a 7=LVARS), informazioni sul prototipo |
| 🕸️ Callgraph e xref | get_xrefs_to, get_xrefs_from, get_callers, get_callees, get_call_graph, get_basic_blocks, get_strings_used | Riferimenti incrociati, alberi ricorsivi dei chiamanti, flusso di controllo dei basic block |
| 🔎 Ricerca ed esplorazione | search_function, search_bytes, search_text, list_strings, list_names, list_imports, list_exports | Ricerca di byte con wildcard (??), funzioni importate dalle DLL, esportazioni, filtro delle stringhe |
| 🏷️ Tipi e struct | list_structs, get_struct, list_enums, list_types, get_type, create_type, create_struct | Parsing delle dichiarazioni C, definizioni delle strutture, ispezione dei membri degli enum |
| ✏️ Mutazione del database | rename_function, comment_function, set_inline_comment, rename_variable, set_variable_type, set_function_type, patch_bytes, batch_mutations, undo, redo, save_database, navigate_to | Ridenominazione verificata, tipizzazione delle variabili locali, patching del binario, rollback atomico |
| 🐞 Debugger live | dbg_start, dbg_set_breakpoint, dbg_continue, dbg_step_into, dbg_step_over, dbg_get_registers, dbg_read_memory, dbg_get_stack | Controllo dell'esecuzione del processo, breakpoint hardware, dump live di registri e memoria |
| ⚡ IDAPython dinamico | execute_idapython | Esecuzione IDAPython in tempo reale con cattura strutturata del result |
| 📦 Risorse MCP | ida://info, ida://schema | Metadati del binario in tempo reale e schema OpenAPI completo |