
Многосессионный маршрутизатор IDALib MCP для агентов кодирования. Анализируйте несколько бинарных файлов параллельно с помощью инструментов обратной разработки, совместимых с IDA.
Одна MCP-конечная точка. Множество изолированных сессий IDALib.
Легковесный, ориентированный на агентов управляющий слой для безголового бинарного анализа с использованием набора инструментов IDA Pro MCP.
[!IMPORTANT] Pocket Disasm — это независимый проект с открытым исходным кодом. Он не связан с Hex-Rays, не одобрен, не спонсируется и не является официальным продуктом Hex-Rays. IDA Pro и IDALib являются продуктами Hex-Rays и требуют отдельной действительной установки и лицензии. Pocket Disasm не распространяет IDA, IDALib или любое другое программное обеспечение Hex-Rays.
Pocket Disasm запускает один публичный MCP-маршрутизатор и назначает каждой бинарной программе собственный рабочий процесс IDALib. Кодирующие агенты могут создавать, выбирать, проверять, сохранять и закрывать сеансы анализа без запуска отдельного интерактивного окна IDA для каждого файла.
Проект использует зафиксированную ревизию mrexodia/ida-pro-mcp в качестве основной реализации анализа MCP и каталога инструментов. Pocket Disasm строит свой унифицированный многопользовательский маршрутизатор, изоляцию процессов, интеграции агентов, диагностики и терминальный центр управления вокруг этого вышестоящего проекта.
Выполните одну команду в PowerShell:
irm https://raw.githubusercontent.com/whoisqwerz/pocket_disasm/main/install.ps1 | iex
Затем откройте новый терминал и выполните:
pocket
Установщик создаёт изолированную среду Python в %LOCALAPPDATA%\PocketDisasm, устанавливает фиксированные зависимости, добавляет команду pocket в пользовательский PATH и открывает терминальный центр управления.
ida-pro-mcp.pocket.idalib.dll.Конечная точка по умолчанию:
http://127.0.0.1:13339/mcp
Порт можно изменить из TUI. Pocket Disasm обновляет все файлы конфигурации MCP, которые он ранее зарегистрировал, и при необходимости перезапускает маршрутизатор.
Агентам не нужен выделенный MCP-сервер для каждой бинарной программы. Они создают и маршрутизируют сессии через общую конечную точку:
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")
Выбор также можно ограничить текущим MCP-клиентом:
idb_select(database="first")
decompile(addr="main")
Это позволяет одной модели управлять несколькими бинарными файлами или нескольким агентам работать через один маршрутизатор, не разделяя выбранную базу данных.
flowchart LR
A1["Кодирующий агент A"] --> MCP["Pocket Disasm MCP<br/>127.0.0.1:13339/mcp"]
A2["Кодирующий агент B"] --> MCP
A3["Кодирующий агент N"] --> MCP
MCP --> S["Многопользовательский супервизор"]
S --> W1["Рабочий процесс IDALib<br/>бинарная программа A"]
S --> W2["Рабочий процесс IDALib<br/>бинарная программа B"]
S --> WN["Рабочий процесс IDALib<br/>бинарная программа N"]
Каждая активная сессия имеет собственный процесс, внутренний порт, изолированное рабочее пространство анализа, базу данных IDA и журнал рабочего процесса. Настраиваемый лимит рабочих процессов предотвращает неограниченное создание процессов; по умолчанию — 8, TUI принимает значения от 1 до 128.
Pocket Disasm добавляет следующие инструменты в стандартный каталог IDA MCP:
| Инструмент | Назначение |
|---|---|
idb_open | Создать изолированную сессию для локальной бинарной программы |
idb_list | Список сессий, состояний, процессов и текущего выбора |
idb_select | Выбрать сессию по умолчанию для текущего MCP-клиента |
idb_health | Проверка запуска рабочего процесса и его состояния |
idb_wait | Ожидание завершения автоанализа IDA и запуска MCP |
idb_save | Сохранить текущую базу данных IDA |
idb_logs | Прочитать последние выводы одного рабочего процесса |
idb_close | Остановить рабочий процесс и освободить его ресурсы |
Обычные инструменты анализа, такие как survey_binary, lookup_funcs, func_query, find_bytes и decompile, принимают необязательный аргумент database. Если он опущен, Pocket Disasm использует сессию, выбранную этим MCP-клиентом.
TUI добавляет только запись pocket-disasm MCP в существующие файлы конфигурации; он не заменяет весь файл.
| Агент | Глобальная конфигурация | Конфигурация проекта |
|---|---|---|
| Codex | ~/.codex/config.toml | Используется глобальная конечная точка |
| Claude Code | ~/.claude.json | .mcp.json |
| Cursor | ~/.cursor/mcp.json | .cursor/mcp.json |
| VS Code | Профиль пользователя mcp.json | .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Используется глобальная конечная точка |
Та же операция доступна из CLI:
pocket integrate codex claude cursor --scope global
pocket integrate claude cursor vscode --scope project --project-dir .
TUI покрывает обычную установку и управление. CLI остаётся доступным для автоматизации и диагностики: