
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.
Pocket Disasm speichert seinen Benutzerstatus unter:
%LOCALAPPDATA%\PocketDisasm
Wichtige Dateien sind:
| Datei | Inhalt |
|---|---|
config.json | IDA-Pfad, Endpunkt-Ports und Worker-Limit |
integrations.json | Von Pocket Disasm verwaltete MCP-Konfigurationsdateien |
events.log | Strukturierte Lebenszyklusereignisse und Ausnahme-Tracebacks |
pocket-disasm.out.log | Router-Standardausgabe |
pocket-disasm.err.log | Router-Fehlerausgabe |
sessions/<session>/worker.log | Dauerhafte Ausgabe für einen IDALib-Worker |
installer.log | Installations- und Upgrade-Protokoll |
update.log | Ausgabe des In-TUI-Updaters |
Verwenden Sie Protokolle inspizieren in der TUI oder führen Sie aus:
pocket logs
Die TUI prüft einmal beim Start auf eine neuere Version. Wenn ein Update verfügbar ist, erscheint Pocket Disasm aktualisieren in der Aktionsliste. Der Updater bewahrt die Konfiguration, aktualisiert die isolierte Umgebung, startet die TUI neu und bringt den Router wieder online, wenn er zuvor ausgeführt wurde.
winget installieren.Pocket Disasm enthält keine IDA, IDALib oder eine IDA-Lizenz. Es ist ein unabhängiges Projekt und ist weder mit Hex-Rays verbunden noch von Hex-Rays unterstützt.
$script = irm https://raw.githubusercontent.com/whoisqwerz/pocket_disasm/main/install.ps1
& ([scriptblock]::Create($script)) -Uninstall
Agent-MCP-Einträge werden bewusst nicht automatisch entfernt, so dass während der Deinstallation keine nicht zugehörige Konfiguration überschrieben wird. Sie können aus den entsprechenden Agentenkonfigurationsdateien entfernt werden, wenn sie nicht mehr benötigt werden.
Pocket Disasm wird unter der MIT-Lizenz veröffentlicht.