
Routeur MCP IDALib multi-session pour agents de codage. Analysez plusieurs binaires en parallèle avec des outils de rétro-ingénierie compatibles IDA.
Un point de terminaison MCP. De nombreuses sessions IDALib isolées.
Une couche de contrôle légère, axée sur les agents, pour l'analyse binaire sans tête avec l'ensemble d'outils IDA Pro MCP.
[!IMPORTANT] Pocket Disasm est un projet open-source indépendant. Il n'est pas affilié à, approuvé par, sponsorisé par, ni un produit officiel de Hex-Rays. IDA Pro et IDALib sont des produits de Hex-Rays et nécessitent une installation et une licence distinctes. Pocket Disasm ne distribue pas IDA, IDALib, ni aucun logiciel Hex-Rays.
Pocket Disasm exécute un routeur MCP public et donne à chaque binaire son propre worker IDALib. Les agents de codage peuvent créer, sélectionner, inspecter, sauvegarder et fermer des sessions d'analyse sans lancer une fenêtre IDA interactive distincte pour chaque fichier.
Le projet utilise une révision épinglée de mrexodia/ida-pro-mcp comme implémentation d'analyse MCP principale et catalogue d'outils. Pocket Disasm construit son routeur multi-session unifié, son isolation de processus, ses intégrations d'agents, ses diagnostics et son centre de contrôle terminal autour de ce projet amont.
Exécutez une commande dans PowerShell :
irm https://raw.githubusercontent.com/whoisqwerz/pocket_disasm/main/install.ps1 | iex
Ensuite, ouvrez un nouveau terminal et exécutez :
pocket
L'installateur crée un environnement Python isolé sous %LOCALAPPDATA%\PocketDisasm, installe les dépendances épinglées, ajoute la commande pocket au PATH utilisateur et ouvre le centre de contrôle terminal.
ida-pro-mcp.pocket.idalib.dll.Le point de terminaison par défaut est :
http://127.0.0.1:13339/mcp
Le port peut être modifié depuis le TUI. Pocket Disasm met à jour chaque fichier de configuration MCP qu'il a précédemment enregistré et redémarre le routeur si nécessaire.
Les agents n'ont pas besoin d'un serveur MCP dédié pour chaque binaire. Ils créent et acheminent les sessions via le point de terminaison partagé :
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 sélection peut également être limitée au client MCP actuel :
idb_select(database="first")
decompile(addr="main")
Cela permet à un modèle de gérer plusieurs binaires ou à plusieurs agents de travailler via le même routeur sans partager une base de données sélectionnée.
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"]
Chaque session active possède son propre processus, port interne, espace de travail d'analyse isolé, base de données IDA et journal de worker. La limite configurable de workers empêche une création illimitée de processus ; la valeur par défaut est 8 et le TUI accepte des valeurs de 1 à 128.
Pocket Disasm ajoute les outils suivants au catalogue IDA MCP standard :
| Outil | Objectif |
|---|---|
idb_open | Créer une session isolée pour un binaire local |
idb_list | Lister les sessions, états, processus et la sélection actuelle |
idb_select | Sélectionner une session par défaut pour le client MCP actuel |
idb_health | Lire le démarrage du worker et la santé du processus |
idb_wait | Attendre l'analyse automatique d'IDA et le démarrage MCP |
idb_save | Sauvegarder la base de données IDA actuelle |
idb_logs | Lire la sortie récente d'un worker |
idb_close | Arrêter un worker et libérer ses ressources |
Les outils d'analyse classiques tels que survey_binary, lookup_funcs, func_query, find_bytes et decompile acceptent un argument database optionnel. S'il est omis, Pocket Disasm utilise la session sélectionnée par ce client MCP.
Le TUI fusionne uniquement l'entrée MCP pocket-disasm dans les fichiers de configuration existants ; il ne remplace pas l'intégralité du fichier.
| Agent de codage | Configuration globale | Configuration projet |
|---|---|---|
| Codex | ~/.codex/config.toml | Le point de terminaison global est utilisé |
| Claude Code | ~/.claude.json | .mcp.json |
| Cursor | ~/.cursor/mcp.json | .cursor/mcp.json |
| VS Code | Profile utilisateur mcp.json | .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Le point de terminaison global est utilisé |
La même opération est disponible depuis la CLI :
pocket integrate codex claude cursor --scope global
pocket integrate claude cursor vscode --scope project --project-dir .
Le TUI couvre l'installation et le contrôle normaux. La CLI reste disponible pour l'automatisation et les diagnostics :