Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ida-pro-mcp — Локальный, детерминированный MCP-сервер для IDA Pro/Home: 109 строго типизированных операций обратного инжиниринга, выводы с подтверждением доказательствами и редактирование IDB с контролем политик. | Kitploit
Инструменты/GitHubGitHub/grecandrei/ida-pro-mcp
Статический анализОбратная инженерияСкриптинг и автоматизацияОтладчикиАнализ вредоносных программУтилиты и фреймворкиАнализ Бинарных ФайловОбратная Разработка с Помощью ИИБезопасность ИИАнализ Прошивок
GitHubgrecandrei/ida-pro-mcp
81131 день назадЕщё не проверено

ida-pro-mcp

Локальный, детерминированный MCP-сервер для IDA Pro/Home: 109 строго типизированных операций обратного инжиниринга, выводы с подтверждением доказательствами и редактирование IDB с контролем политик.

РепозиторийСайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

IDA Pro MCP

IDA Pro MCP — детерминированный анализ бинарных файлов для ИИ-агентов

IDA Pro MCP — это локальный сервер Model Context Protocol для IDA Pro. Он позволяет MCP-клиенту исследовать IDB, запрашивать у IDA детерминированные результаты анализа и, при явном разрешении, записывать аннотации или другие изменения обратно в IDB. Хост-процесс работает вне IDA и по умолчанию запускает отдельный headless-процесс IDA для каждой сессии.

Почему именно эта реализация

  • Детерминированная поверхность для агентов: 109 операций ida_* со строгими схемами и живым обнаружением через tools/list и ida_help.
  • Локальная архитектура: хост и среда выполнения IDA взаимодействуют через защищённый токеном loopback-мост; в пути анализа нет скрытого сервиса LLM.
  • Доказательства, а не просто чат: долговременные находки сохраняют происхождение, достоверность, состояние жизненного цикла, конфликты и историю аудита вне IDB.
  • Контролируемые изменения: операции, изменяющие IDB, остаются за явной политикой и средствами подтверждения рисков.
  • Широкая поддержка клиентов: установщик понимает более 22 агентных сред и их конфигурационные форматы JSON, JSON5, TOML и YAML.

Текущая версия — 1.0.0a3. Это альфа-версия. Публичные имена операций ida_*, схемы и формат рабочего пространства могут измениться до стабильного релиза 1.0.0. Поверхность клиента по умолчанию содержит 109 операций с точными схемами. Используйте живое обнаружение для получения полного контракта: tools/list перечисляет каждую операцию с её схемой, а ida_help(topic="...") возвращает точные аргументы и пример для одной операции.

Перед установкой

Вам потребуется:

  • IDA Pro или IDA Home 9.2 или новее с рабочим исполняемым файлом idat/idat64. Живые тестовые данные репозитория охватывают IDA 9.3 и 9.4; 9.2 — это заявленный минимальный уровень совместимости.
  • Python 3.11 или новее для хоста и установщика.
  • Разрешение на запуск IDA для бинарных файлов, которые вы планируете исследовать, и достаточно места на диске для управляемого окружения Python, файлов сессий и копий IDB.
  • MCP-клиент, поддерживающий локальный stdio-сервер, например Claude Code, Codex, OpenCode, Claude Desktop, Cursor, VS Code/Copilot, Windsurf, Cline, Roo Code, Gemini CLI или Antigravity.

Обычный анализ не требует языковой модели или модели эмбеддингов. Необязательные функции семантического поиска по умолчанию используют локальную модель и остаются отключёнными, если модель не настроена.

Среда выполнения по умолчанию — idat: один headless-процесс IDA на сессию. Бэкенд idalib экспериментальный, требует установки IDA 9.3 или новее с активированным пакетом idapro и не нужен для первой установки.

Установка из исходного репозитория

Установщик создаёт управляемое окружение в корне установки, устанавливает в него зафиксированную копию репозитория и записывает конфигурацию клиента для поддерживаемых расположений клиентов. Из корня репозитория выполните:

root@kitploit:~
python3 install.py

Для известной установки IDA укажите её явно:

root@kitploit:~
python3 install.py --ida-dir /path/to/ida-pro-9.3

Для неинтерактивного запуска:

root@kitploit:~
python3 install.py --yes --no-ida-prompt --ida-dir /path/to/ida-pro-9.3

Установщик также может найти IDA через IDADIR, IDA_DIR, исполняемые файлы IDA в PATH и стандартные каталоги установки. --ida-version выбирает версию, когда присутствует более одной установки. Используйте --dry-run, чтобы сначала просмотреть планируемые изменения.

Установщик не загружает модель эмбеддингов, если вы не выбрали или не запросили её. Он может создавать или обновлять конфигурационные файлы для каждого расположения клиента во встроенной карте клиентов, включая клиенты, которые не установлены на вашей машине. Проверьте install-report.json в корне установки и удалите неиспользуемые записи при необходимости. Существующие обычные конфигурационные файлы создаются резервные копии перед изменением; некорректные, символические или необычные файлы отклоняются, а не перезаписываются.

Перезапустите MCP-клиент после установки, чтобы он перезагрузил свою конфигурацию.

Агентные обвязки обнаруживают поверхность инструментов в реальном времени: tools/list перечисляет каждую операцию с её схемой, а ida_help(topic="...") возвращает точные аргументы и пример. Статические файлы навыков не устанавливаются.

Корень установки по умолчанию:

  • Linux и macOS: ~/.local/share/ida-pro-mcp
  • Windows: %LOCALAPPDATA%/ida-pro-mcp

Задайте IDA_PRO_MCP_HOME или передайте --install-root, чтобы выбрать другое расположение.

Установка из релизного артефакта

Альфа-релизы собираются GitHub Actions и публикуются вручную как пререлизы. Когда релиз доступен, скачайте ресурс bundle.zip или bundle.tar.gz и его файл SHA256SUMS со страницы релизов. Проверьте контрольную сумму, распакуйте пакет и запустите установщик из его каталога верхнего уровня:

root@kitploit:~
python3 install.py --yes --no-ida-prompt --ida-dir /path/to/ida-pro-9.3

Релиз также содержит wheel и исходный дистрибутив для скриптовых установок Python. Пакет — самый простой путь, поскольку он включает установщик и все файлы проекта, необходимые для настройки MCP-клиента. Релизы имеют альфа-качество; сохраните оригинальный бинарный файл и IDB и прочитайте примечания к релизу перед обновлением.

Подключение MCP-клиента

Установщик записывает запись сервера для известных ему путей конфигурации клиентов. Он поддерживает Gemini CLI, Antigravity, Antigravity IDE, Antigravity CLI, Claude Code, Codex, Copilot CLI, OpenCode, Claude Desktop, Cursor, VS Code, Windsurf, Cline и Roo Code. OpenCode и клиенты семейства Copilot используют разные формы конфигурации; позвольте установщику записать эти файлы или следуйте руководству по настройке OpenCode.

Для клиента, использующего общий формат JSON, запись эквивалентна:

root@kitploit:~
{
  "mcpServers": {
    "ida-pro-mcp": {
      "command": "/path/to/ida-pro-mcp/.venv/bin/python",
      "args": ["-u", "-m", "ida_pro_mcp.host.server"],
      "env": {
        "IDA_PRO_MCP_HOME": "/path/to/ida-pro-mcp",
        "IDADIR": "/path/to/ida-pro-9.3",
        "IDA_MCP_TOOL_SURFACE": "agent"
      }
    }
  }
}

В Windows используйте управляемый интерпретатор по пути <install-root>/.venv/Scripts/python.exe. Важные детали — это управляемый интерпретатор, -u -m ida_pro_mcp.host.server, выбранный каталог IDA и IDA_MCP_TOOL_SURFACE=agent. Не указывайте клиенту на install.py; этот файл — установщик, а не MCP-сервер.

После изменения конфигурации клиента полностью перезапустите клиент и проверьте, что ida_help появляется в его доступных операциях. Если клиент показывает только устаревший широкий интерфейс tool(action=...), проверьте, что окружение выбирает поверхность agent по умолчанию, а не IDA_MCP_TOOL_SURFACE=legacy.

Первая полезная сессия

Сначала используйте абсолютный путь к тестовому бинарному файлу. Открытие бинарного файла обычно ожидает завершения начального анализа IDA; большой бинарный файл может занять время.

root@kitploit:~
ida_open_binary(binary_path="/absolute/path/to/sample")
ida_session_status()
ida_overview()
ida_list_imports(limit=30)
ida_list_strings(query="http", limit=30)
ida_find(query="main", limit=20)
ida_decompile(address="<address returned by IDA>")
ida_xrefs_to(address="<same address>")

Используйте ida_help(topic="ida_decompile"), когда вам нужна точная схема аргументов. Публичные схемы операций строгие: неизвестные аргументы отклоняются. Адреса могут приниматься как целые числа или строки в соответствии с индивидуальным контрактом операции; используйте форму, показанную ida_help для операции в вашем клиенте.

Для небольшой записи расследования операции находок рабочего пространства таковы:

root@kitploit:~
ida_write_finding(title="Input reaches parser", address="<address returned by IDA>", kind="finding", status="confirmed", confidence=0.8, evidence=[{"type":"call", "value":"recv", "address":"<evidence address>"}])
ida_analysis_brief()
ida_next_target()
ida_export_findings(format="markdown")

Находки рабочего пространства хранятся отдельно от правок IDB. Если активная политика разрешает запись в рабочее пространство, ida_write_finding записывает находку локально; в противном случае сервер возвращает ошибку политики. ida_publish_findings(dry_run=true) предварительно просматривает изменения IDB. Публикация, переименование, патчинг и другие мутации IDB контролируются политикой и требуют документированного подтверждения операции там, где операция его предоставляет.

Операции с первого взгляда

Главная страница остаётся ориентированной на задачи, но этот компактный указатель делает публичную поверхность легко просматриваемой. Каждое имя ниже при вызове имеет префикс ida_. Полные схемы и примеры доступны в реальном времени через tools/list и ida_help(topic="...").

ГруппаОперации
Сессияopen_binary, open_background, session_state, session_status, session_health, close_session, session_get, session_list, sso_activate, agent_login, agent_logout, session_switch
Обнаружениеoverview, find, semantic_search, reranker_status, function_families, index_functions, index_status, cancel_index, list_functions, list_strings, list_imports, list_types, list_segments, list_sigs, sreg_get, sreg_list, auto_wait, events, registers, search_data_value, search_query_lang, r2_status, r2_bininfo, r2_load_hints, r2_disassemble_hypothesis, r2_vxrefs, fw_detect_vector_table, fw_detect_load_base, fw_detect_mmio, fw_rtos_scan, fw_carve
Кодdecompile, disassemble, compare_functions, diff_sessions, xrefs_to, callers, callees, read_bytes, get_type, callgraph, emulate
Находки

Что безопасно, а что нет

Базовая политика сервера — assist. Сессия может ужесточить базовую политику оператора, но не может её ослабить. Политика детерминирована; она не решает, что рискованная операция безопасна, потому что клиент её запрашивает.

Инспекция только для чтения — обычная отправная точка. Примеры включают ida_overview, ida_find, ida_list_functions, ida_list_strings, ida_list_imports, ida_decompile, ida_disassemble, ida_xrefs_to, ida_callers, ida_callees, ida_callgraph, ida_read_bytes и операции вычислений. Они всё равно потребляют локальные файлы и ресурсы IDA, и MCP-клиент получает их результаты.

Следующие действия изменяют долговременное состояние или выполняют код и должны рассматриваться как высокоimpactные:

  • ida_rename, ida_comment, ida_patch_bytes, изменения функций/типов/сегментов/данных, применение сигнатур, ida_save_idb, снимки и операции отмены/восстановления могут изменить IDB или связанное состояние.
  • ida_publish_findings записывает находки в IDB. Сначала запустите его форму dry-run; форма без dry-run контролируется.
  • ida_close_session разрушает живую среду выполнения IDA и деструктивна с точки зрения сессии.
  • ida_python выполняет произвольный Python в активном процессе IDA. Он заблокирован в безопасном режиме и требует явного подтверждения риска при обычной политике.
  • ida_emulate полезен для контролируемых проверок, но мутирующие действия эмулятора требуют соответствующего подтверждения.
  • ida_til_export и ida_til_import обращаются к файловой системе и контролируются. Пути файловой системы ограничены настроенным корнем памяти там, где эта защита применяется.

Не используйте --disable-policy как флаг удобства. Он устанавливает IDA_MCP_POLICY_MODE=off и отключает все политические шлюзы, включая подтверждения записи и другие средства управления рабочим процессом. Если вызов отклонён, прочитайте запись ida_help операции и укажите точный подтверждённый аргумент только тогда, когда схема этой операции его поддерживает.

Пока IDA всё ещё выполняет начальный анализ, безопасный режим блокирует некоторые операции полного анализа бинарного файла, индексации и скриптов. Он предназначен для сохранения узких вызовов на ранней сессии; опрашивайте ida_session_status или ida_session_health, а не обходите защиту.

Мост слушает на loopback и использует токен для каждой сессии. Это не сетевой сервис: не открывайте и не перенаправляйте порт моста в недоверенную сеть. Рассматривайте импортированные скрипты, трассировки, бинарные файлы, данные корпуса и клиентские запросы как недоверенный ввод.

Конфиденциальность и обработка данных

Обычный путь хост-IDA локален. Проект не запускает встроенный сервис LLM в пути анализа, а локальные эмбеддинги включаются по желанию. Это не делает весь рабочий процесс автоматически офлайн:

  • Подключённый MCP-клиент получает пути, символы, строки, байты, декомпиляцию, находки и другие результаты. Клиент или его поставщик модели может передавать этот контекст в соответствии со своими собственными настройками учётной записи, модели и хранения. IDA Pro MCP не может контролировать эти передачи.
  • Если вы явно выбираете бэкенд эмбеддингов Gemini, сервер отправляет компактную поведенческую сигнатуру в Google, а не полную декомпиляцию. Сигнатура всё ещё может содержать производные от кода вызовы, константы, строковые литералы и информацию о потоке управления. Не включайте её для бинарных файлов, которые должны оставаться на рабочей станции.
  • Загрузки зависимостей установщика, необязательные загрузки модели и llama-server, необязательные загрузки корпуса угроз и внешние интеграции Rizin/radare2 могут выполнять сетевые запросы при включении.
  • Локальный кэш, журналы, метаданные сессии, управляемые IDB и доска объявлений могут содержать пути, метаданные анализа и находки. Защищайте каталоги установки/данных. Если вы передаёте ключ Gemini AI Studio установщику, ключ может быть записан в сгенерированный блок окружения MCP-клиента; предпочитайте учётные данные на основе окружения и проверьте конфигурацию клиента.

Для локальной настройки используйте локальную среду выполнения по умолчанию, оставьте Gemini и другие необязательные загрузки отключёнными и настройте MCP-клиент и его модель в соответствии с политикой данных вашей организации. «Только локально» всё ещё требует проверки того, что клиент отправляет своему собственному поставщику модели.

Частые проблемы

Установщик не может найти IDA

Укажите каталог установки явно:

root@kitploit:~
python3 install.py --ida-dir /path/to/ida-pro-9.3

Вы также можете задать IDADIR или IDA_DIR. Если найдено несколько установок, используйте --ida-version 9.3 или --no-ida-prompt для управления выбором. Убедитесь, что выбранный каталог содержит исполняемый idat или idat64.

Клиент не показывает IDA Pro MCP

Перезапустите клиент и проверьте его запись конфигурации. Убедитесь, что его команда использует управляемый Python из venv и -u -m ida_pro_mcp.host.server, и что блок env содержит правильный IDADIR. Проверьте install-report.json; установщик записывает сбои обновления клиента и сохраняет резервные копии рядом с изменёнными файлами. Формы конфигурации OpenCode и семейства Copilot отличаются от общего примера JSON.

Открытие бинарного файла занимает много времени или выглядит зависшим

Обычный вызов ida_open_binary ожидает начального анализа. Проверьте ida_session_status и ida_session_health, дайте больше времени для большого бинарного файла и проверьте журналы каждой сессии в каталоге установки/данных. Операция фонового открытия доступна, но она предназначена для случаев, когда вы понимаете её асинхронное поведение и ограничения безопасного режима.

Операция записи отклонена

Обычно это политика, работающая как настроено. Используйте ida_help для проверки точной схемы операции и её требования подтверждения. Не добавляйте произвольные аргументы: схемы строгие. Проверьте IDA_MCP_POLICY_MODE и файл политики оператора перед изменением политики. Отключение всех политических шлюзов — это отдельный, намеренно небезопасный выбор.

Семантический поиск недоступен

Семантический поиск необязателен и требует индекса и совместимого бэкенда эмбеддингов. Обычный листинг, поиск, декомпиляция и перекрёстные ссылки не требуют его. Чтобы настроить необязательный локальный путь, используйте явные опции эмбеддера установщика, например:

root@kitploit:~
python3 install.py --setup-embedder

Установщик также может запустить --embedder-doctor, использовать явный путь к модели или загрузить выбранную модель и llama-server по запросу. Лицензии моделей, использование диска и сетевые загрузки — ваша ответственность. Если модель отсутствует, сервер должен сообщить, что семантический поиск недоступен, а не делать вид, что он выполнялся.

Установщик отклоняет конфигурацию клиента

Исправьте указанный синтаксис JSON, JSONC или TOML и перезапустите установщик. Он также отклоняет символические и необычные пути конфигурации, чтобы избежать перезаписи неожиданной цели. Существующие обычные файлы создаются резервные копии; поведение отката установщика по умолчанию может восстановить эти резервные копии, если более поздняя фаза завершится неудачей.

Сессия или среда выполнения IDA даёт сбой

Проверьте ida_session_health, журнал сессии и журнал моста. Убедитесь, что клиент использует тот же корень установки и IDADIR, которые записал установщик. Бэкенд idat по умолчанию даёт каждой сессии свой собственный процесс; не переключайтесь на экспериментальный idalib при диагностике базовой установки.

Справочные материалы

  • Вики проекта — ориентированные на задачи руководства по установке, исследованию, редактированию и устранению неполадок.
  • Локальные страницы вики — тот же написанный вручную материал, поставляемый для встроенного инструмента вики.
  • Живое обнаружение операций — tools/list и ida_help раскрывают каждую публичную операцию, схему и пример.
  • Модель безопасности — границы доверия, режимы политики, loopback-транспорт, владение сессией и защиты файловой системы.
  • Рабочее пространство расследования — находки, доказательства, цели и экспорты.
  • Интеллект и эмбеддинги — локальные и необязательные бэкенды извлечения Gemini.
  • Настройка OpenCode — конфигурация OpenCode.
  • Архитектура — хост, среда выполнения IDA и поток данных для читателей, которым нужны детали реализации.
  • Политика безопасности — отчётность и рекомендации по безопасности.
  • Живое тестирование IDA — что тесты репозитория доказывают и не доказывают о реальной установке IDA.
  • Версионирование и контрольный список релиза и журнал изменений — альфа-статус и история релизов.
  • Указатель документации — полная карта поддерживаемых руководств, справочников, страниц вики и исследовательских заметок.

Для точных имён операций используйте сгенерированный справочник или спросите работающий сервер с помощью ida_help. Старый бэкенд tool(action=...) остаётся доступным для совместимости и выбирается с помощью IDA_MCP_TOOL_SURFACE=legacy; новые интеграции должны использовать поверхность ida_* с точными схемами.

Скачать инструмент
write_finding, mark_examined, list_findings, search_findings, update_finding, export_findings, publish_findings, import_annotations, analysis_brief, next_target
Редактированиеcreate_function, change_function, rename, comment, patch_bytes, save_idb, make_code, undefine, rename_local, declare_type, apply_type, add_segment, set_segment_attrs, apply_sig, sreg_set, create_data, create_strlit, undo_begin, undo_end, add_entry, idb_snapshot, idb_restore_snapshot, struct_member_add, struct_member_del, struct_member_rename, struct_member_set_type, enum_member_add, enum_member_rename, enum_member_revalue, til_delete, til_export, til_import, mark_dangerous
Вычисленияcalc_eval, calc_offset, calc_convert, calc_resolve, calc_deref, calc_chain, calc_align, calc_bitops
Поддержкаpython, continue, help
Рабочий процессbatch