ida-multi-mcp
MCP-сервер для IDA Pro с одной точкой входа на несколько открытых баз: декомпиляция, перекрестные ссылки и поиск похожих функций между бинарниками
- 463 ★ репозитория
- Последний коммит
Широкий доступ
Почему такой уровень
- Инструмент py_eval выполняет произвольный код IDAPython внутри процесса IDA, а patch, patch_asm и put_int меняют байты и данные базы
- Команда ida-multi-mcp --install ставит плагин в каталог IDA и меняет настройки всех найденных клиентов MCP
- Агент разбирает бинарники, среди которых бывают образцы вредоносного ПО, поэтому работайте в изолированной среде
Установка
- Работает в
Ручная установка
pipx install git+https://github.com/MeroZemory/ida-multi-mcp.gitЗатем поставьте тот же пакет для версии Python, которую использует IDA: python3.11 -m pip install --user git+https://github.com/MeroZemory/ida-multi-mcp.git. Версию укажите свою.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Инструмент py_eval выполняет произвольный код IDAPython внутри процесса IDA, а patch, patch_asm и put_int меняют байты и данные базы
- Команда ida-multi-mcp --install ставит плагин в каталог IDA и меняет настройки всех найденных клиентов MCP
- Агент разбирает бинарники, среди которых бывают образцы вредоносного ПО, поэтому работайте в изолированной среде
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
ida-multi-mcp — MCP-маршрутизатор для IDA Pro. Агент подключается к нему один раз, а за ним работают сразу несколько баз IDA: например дроппер, полезная нагрузка и командный сервер. Каждый экземпляр IDA с установленным плагином сам записывается в реестр ~/.ida-mcp/instances.json при открытии базы, и настройка клиента под каждый бинарник не нужна. Экземпляры получают короткие идентификаторы вроде k7m2 и px3a, а запросы к разным экземплярам идут параллельно. Режим idalib открывает бинарник без графического интерфейса отдельным процессом на сессию, для него нужен IDA Pro. До 76 инструментов покрывают сводку по бинарнику, списки функций, декомпиляцию и дизассемблирование, перекрестные ссылки и графы вызовов, поиск байтов и регулярных выражений, типы и кадры стека, переименование, комментарии, патчи и чтение памяти. Инструмент py_eval выполняет произвольный код IDAPython внутри IDA. Правки остаются в памяти, пока не вызван idb_save(). Есть два отличия от обычных IDA-серверов. Первое — правило ожидания автоанализа: пока очередь анализа не пуста, списки функций и перекрестные ссылки неполны, поэтому analysis_status и analysis_wait показывают, закончилась ли работа, а маршрутизатор предупреждает о неполных ответах. Второе — поиск одинаковых и похожих функций внутри бинарника и между ними (similar_functions, compare_functions, compare_binaries) по MinHash команд, якорям импортов, строк и констант и структуре графа потока управления. Оценка и индексы считаются локально, бинарники не загружаются во внешние сервисы. Реализации инструментов IDA взяты из проекта ida-pro-mcp.
Для кого. Для реверс-инженеров, аналитиков вредоносного ПО и исследователей уязвимостей, у которых есть лицензия IDA Pro и которые разбирают несколько связанных бинарников вместе с агентом.
Подходит, если
- Нужно найти в dropper.dll функцию, совпадающую с sub_140001000 из malware.exe, несмотря на удаленные символы
- Идет разбор патча: надо сопоставить функции версии до и после обновления
- Анализируются дроппер, полезная нагрузка и командный сервер, и все три базы открыты в разных окнах IDA
- Нужен автоматический разбор бинарника без графического интерфейса через idalib
- Агент должен знать, закончился ли автоанализ, прежде чем строить выводы по списку функций
Не подходит, если
- У вас IDA Home или IDA Free: режим idalib им недоступен
- У вас IDA Pro 9.0 SP0 (сборка 240925): она не поддерживается, нужна SP1 или новее
- Нужны удаленные экземпляры или клиент в контейнере: маршрутизатор слушает только локальный интерфейс и работает по stdio
- Вы работаете в Ghidra: для нее в каталоге есть отдельные MCP-серверы
Пример запроса к агенту
Какая функция в dropper.dll совпадает с sub_140001000 из malware.exe? Дождись автоанализа, построй индексы и покажи оценки сходстваMCP
- Транспорт
- stdio
- Авторизация
- не нужна
Переменные окружения
IDA_MCP_SIM_NEURAL- 1 включает необязательный нейронный режим сходства функций, модель скачивается в ~/.ida-mcp/models/
Ограничения
- Нужны Python 3.11 или новее и IDA Pro 8.5 или новее, рекомендуется 9.1 и выше. IDA 9.0 SP0 не поддерживается.
- Только локальный доступ: маршрутизатор привязан к петле и отказывает нелокальным экземплярам. Транспорт только stdio, конечной точки HTTP или SSE нет.
- Одновременность работает между экземплярами, внутри одного экземпляра вызовы встают в очередь, потому что IDA исполняется в одном главном потоке.
- Отмена не передается в IDA: границу выполнения задает таймаут инструмента.
- До завершения автоанализа списки функций, перекрестные ссылки и декомпиляция неполны. Вызовите analysis_wait один раз после открытия бинарника.
- Нейронный режим сходства включается отдельно (pip install ida-multi-mcp[neural] и IDA_MCP_SIM_NEURAL=1) и скачивает модель в ~/.ida-mcp/models/.
Как отключить. Выполните ida-multi-mcp --uninstall: команда убирает прежнюю установку, то есть плагин и конфигурацию. Затем удалите пакет командой pip uninstall ida-multi-mcp или pipx uninstall ida-multi-mcp. Реестр и индексы лежат в ~/.ida-mcp.
Частые вопросы
Как поставить ida-multi-mcp в Claude Code?
Установите пакет командой pipx install git+https://github.com/MeroZemory/ida-multi-mcp.git, затем поставьте его же для версии Python, которую использует IDA, и выполните ida-multi-mcp --install: команда ставит плагин IDA и настраивает найденные клиенты MCP. Можно также попросить агента выполнить инструкцию из docs/installation.md.
Как показать агенту сразу несколько бинарников?
Откройте каждый бинарник в IDA с установленным плагином: экземпляр сам появится в реестре. Затем вызовите list_instances и обращайтесь к нужному по идентификатору, например k7m2. Для работы без интерфейса используйте idalib_open.
Зачем вызывать analysis_wait?
На свежем бинарнике IDA еще анализирует код, и списки функций неполны: в примере README на DLL в 8,5 МБ число функций выросло с 9580 до 13252. Вызов analysis_wait доводит анализ до конца.
Чем ida-multi-mcp отличается от ida-pro-mcp?
Инструменты IDA взяты из ida-pro-mcp. Здесь добавлены маршрутизатор на несколько экземпляров с реестром, поиск похожих функций между бинарниками и контроль завершения автоанализа. Оба проекта умеют работать с несколькими базами, выбирать стоит по удобству.
Отправляются ли бинарники во внешние сервисы?
Нет, оценка сходства и индексы считаются локально. Нейронный режим только скачивает контрольную точку модели при первом включении.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер для IDA Pro с несколькими headless-сессиями idalib: агент открывает бинарники, держит базы изолированно и работает по ключу доступа
MCP-сервер, который связывает IDA Pro с агентом: чтение декомпиляции, переименование и типизация, комментарии и запуск IDAPython прямо в базе
Официальный MCP-сервер Hex-Rays: агент открывает базы IDA, выполняет в них Python и разбирает бинарники. Плагины есть для Claude Code и Codex
Headless MCP-сервер для IDA Pro на Rust: агент открывает базу, перечисляет функции, дизассемблирует, декомпилирует и строит перекрестные ссылки
MCP-сервер и плагин для Ghidra: агент декомпилирует бинарники, смотрит перекрестные ссылки и переименовывает функции в открытом проекте
Нативный MCP-плагин для отладчика x64dbg: агент управляет отладкой по HTTP, ставит точки останова, шагает по коду, читает и патчит память
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| ida-multi-mcp (эта запись) | нет | не нужна | 463 | |
| ida-mcp-rs | нет | не нужна | 877 | безголовый MCP-сервер для IDA Pro на Rust, без реестра нескольких экземпляров |
| Ghidra MCP Server | нет | не нужна | 5 869 | MCP-сервер к Ghidra с сотнями инструментов вместо IDA Pro |
Коротко о README
README открывается установкой одной фразой агенту со ссылкой на docs/installation.md, затем показывает пример разбора двух бинарников и таблицу двух групп преимуществ. Далее идут отношение к ida-pro-mcp, схема архитектуры, правило ожидания автоанализа, список инструментов, раздел о сходстве функций, требования, ручная установка для Windows, macOS и Linux, список поддерживаемых клиентов MCP, примеры использования, ограничения и ссылки на документацию.