ida-multi-mcp

MCP-сервер для IDA Pro с одной точкой входа на несколько открытых баз: декомпиляция, перекрестные ссылки и поиск похожих функций между бинарниками

  • 463 ★ репозитория
  • Последний коммит
MCP-сервер

Широкий доступ

Почему такой уровень

  • Инструмент py_eval выполняет произвольный код IDAPython внутри процесса IDA, а patch, patch_asm и put_int меняют байты и данные базы
  • Команда ida-multi-mcp --install ставит плагин в каталог IDA и меняет настройки всех найденных клиентов MCP
  • Агент разбирает бинарники, среди которых бывают образцы вредоносного ПО, поэтому работайте в изолированной среде
Все причины и проверки

merozemory/ida-multi-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-серверШирокий доступ126Звезды репозитория

MCP-сервер, который связывает IDA Pro с агентом: чтение декомпиляции, переименование и типизация, комментарии и запуск IDAPython прямо в базе

MCP-серверШирокий доступ13,1 тыс.Звезды репозитория
Официальный

Официальный MCP-сервер Hex-Rays: агент открывает базы IDA, выполняет в них Python и разбирает бинарники. Плагины есть для Claude Code и Codex

ПлагинШирокий доступ1,4 тыс.Звезды репозитория

Headless MCP-сервер для IDA Pro на Rust: агент открывает базу, перечисляет функции, дизассемблирует, декомпилирует и строит перекрестные ссылки

MCP-серверШирокий доступ877Звезды репозитория

MCP-сервер и плагин для Ghidra: агент декомпилирует бинарники, смотрит перекрестные ссылки и переименовывает функции в открытом проекте

MCP-серверРасширенный доступ11,5 тыс.Звезды репозитория

Нативный MCP-плагин для отладчика x64dbg: агент управляет отладкой по HTTP, ставит точки останова, шагает по коду, читает и патчит память

MCP-серверШирокий доступ2,6 тыс.Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
ida-multi-mcp (эта запись)нетне нужна463
ida-mcp-rsнетне нужна877безголовый MCP-сервер для IDA Pro на Rust, без реестра нескольких экземпляров
Ghidra MCP Serverнетне нужна5 869MCP-сервер к Ghidra с сотнями инструментов вместо IDA Pro

Коротко о README

README открывается установкой одной фразой агенту со ссылкой на docs/installation.md, затем показывает пример разбора двух бинарников и таблицу двух групп преимуществ. Далее идут отношение к ida-pro-mcp, схема архитектуры, правило ожидания автоанализа, список инструментов, раздел о сходстве функций, требования, ручная установка для Windows, macOS и Linux, список поддерживаемых клиентов MCP, примеры использования, ограничения и ссылки на документацию.

Бейдж для README

Сообщить о проблеме

Foxx AIida-multi-mcp
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.