
Multi-Session IDALib MCP Router für Codierungsagenten. Analysieren Sie mehrere Binärdateien parallel mit IDA-kompatiblen Reverse-Engineering-Tools.
Ein MCP-Endpunkt. Viele isolierte IDALib-Sitzungen.
Eine leichte, agentenzentrierte Steuerschicht für die kopflose Binäranalyse mit dem IDA Pro MCP-Toolset.
[!IMPORTANT] Pocket Disasm ist ein unabhängiges Open-Source-Projekt. Es ist nicht mit Hex-Rays verbunden, wird nicht von Hex-Rays unterstützt, gesponsert oder als offizielles Produkt von Hex-Rays vertrieben. IDA Pro und IDALib sind Produkte von Hex-Rays und erfordern eine separate gültige Installation und Lizenz. Pocket Disasm vertreibt keine IDA-, IDALib- oder Hex-Rays-Software.
Pocket Disasm betreibt einen öffentlichen MCP-Router und gibt jeder Binärdatei ihren eigenen IDALib-Worker. Codierungsagenten können Analysesitzungen erstellen, auswählen, inspizieren, speichern und schließen, ohne für jede Datei ein separates interaktives IDA-Fenster zu starten.
Das Projekt verwendet eine festgelegte Revision von mrexodia/ida-pro-mcp als Kernimplementierung der MCP-Analyse und Toolkatalog. Pocket Disasm baut seinen vereinheitlichten Multi-Session-Router, die Prozessisolierung, Agentenintegrationen, Diagnose und Terminal-Kontrollzentrum um dieses Upstream-Projekt herum.
Führen Sie einen Befehl in PowerShell aus:
irm https://raw.githubusercontent.com/whoisqwerz/pocket_disasm/main/install.ps1 | iex
Öffnen Sie dann ein neues Terminal und führen Sie aus:
pocket
Der Installer erstellt eine isolierte Python-Umgebung unter %LOCALAPPDATA%\PocketDisasm, installiert festgelegte Abhängigkeiten, fügt den Befehl pocket zum Benutzer-PATH hinzu und öffnet das Terminal-Kontrollzentrum.
ida-pro-mcp-Toolkatalog weitergeleitet.pocket aus.idalib.dll aus.Der Standardendpunkt lautet:
http://127.0.0.1:13339/mcp
Der Port kann über die TUI geändert werden. Pocket Disasm aktualisiert jede zuvor registrierte MCP-Konfigurationsdatei und startet den Router bei Bedarf neu.
Agenten benötigen keinen dedizierten MCP-Server für jede Binärdatei. Sie erstellen und leiten Sitzungen über den gemeinsamen Endpunkt:
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")
Die Auswahl kann auch auf den aktuellen MCP-Client eingegrenzt werden:
idb_select(database="first")
decompile(addr="main")
Dies ermöglicht es einem Modell, mehrere Binärdateien zu verwalten, oder mehreren Agenten, durch denselben Router zu arbeiten, ohne eine ausgewählte Datenbank zu teilen.
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"]
Jede aktive Sitzung hat ihren eigenen Prozess, internen Port, isolierten Analysearbeitsbereich, IDA-Datenbank und Worker-Log. Das konfigurierbare Worker-Limit verhindert unbegrenzte Prozesserstellung; der Standardwert ist 8 und die TUI akzeptiert Werte von 1 bis 128.
Pocket Disasm fügt die folgenden Tools zum regulären IDA-MCP-Katalog hinzu:
| Tool | Zweck |
|---|---|
idb_open | Erstellt eine isolierte Sitzung für eine lokale Binärdatei |
idb_list | Listet Sitzungen, Zustände, Prozesse und aktuelle Auswahl auf |
idb_select | Wählt eine Standardsitzung für den aktuellen MCP-Client aus |
idb_health | Liest Worker-Start und Prozesszustand |
idb_wait | Wartet auf IDA-Autoanalyse und MCP-Start |
idb_save | Speichert die aktuelle IDA-Datenbank |
idb_logs | Liest die letzten Ausgaben eines Workers |
idb_close | Stoppt einen Worker und gibt seine Ressourcen frei |
Reguläre Analysetools wie survey_binary, lookup_funcs, func_query, find_bytes und decompile akzeptieren ein optionales database-Argument. Wenn es weggelassen wird, verwendet Pocket Disasm die von diesem MCP-Client ausgewählte Sitzung.
Die TUI fügt nur den pocket-disasm-MCP-Eintrag in bestehende Konfigurationsdateien ein; sie ersetzt nicht die gesamte Datei.
| Agent | Globale Konfiguration | Projektkonfiguration |
|---|---|---|
| Codex | ~/.codex/config.toml | Globaler Endpunkt wird verwendet |
| Claude Code | ~/.claude.json | .mcp.json |
| Cursor | ~/.cursor/mcp.json | .cursor/mcp.json |
| VS Code | Benutzerprofil mcp.json | .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Globaler Endpunkt wird verwendet |
Der gleiche Vorgang ist über die CLI verfügbar:
pocket integrate codex claude cursor --scope global
pocket integrate claude cursor vscode --scope project --project-dir .
Die TUI deckt die normale Installation und Steuerung ab. Die CLI bleibt für Automatisierung und Diagnose verfügbar:
| Befehl | Beschreibung |
|---|---|
pocket | Öffnet das Terminal-Kontrollzentrum |
pocket doctor | Überprüft Python-, IDA-, IDALib- und MCP-Abhängigkeiten |
pocket start | Startet den vereinheitlichten Router im Hintergrund |
pocket stop | Stoppt den Router und seine Worker |
pocket restart | Startet den Router neu |
pocket status | Zeigt Endpunkt- und Daemon-Status an |
pocket logs | Gibt aktuelle Diagnoseausgabe aus |
pocket port <port> | Ändert den Endpunkt in registrierten Agentenkonfigurationen |
pocket config --max-workers <n> | Legt das Limit für gleichzeitige Worker fest |
pocket integrate <agents> | Konfiguriert einen oder mehrere Codierungsagenten |
Führen Sie pocket <command> --help für alle Optionen aus.