Ghidra MCP Server
MCP-сервер к дизассемблеру Ghidra: сотни инструментов для обратной разработки, декомпиляция, переименование, работа со структурами, эмуляция и отладка
Высокий риск
Высокий уровень ставим, когда инструмент пишет во внешние системы, работает с деньгами, рабочими базами или секретами либо выполняет произвольные команды. CLI поставит его только после вашего согласия.
Почему такой уровень
- Инструменты пишут в проект Ghidra: переименование, типы, комментарии, структуры
- Есть эндпоинты запуска произвольных Java и Python скриптов и живая отладка
- Сервер по умолчанию без аутентификации, при неверной настройке его можно вынести за localhost
Установка
Ручная установка
git clone https://github.com/bethington/ghidra-mcp.git
cd ghidra-mcp
python -m tools.setup ensure-prereqs --ghidra-path /path/to/ghidra
python -m tools.setup build
python -m tools.setup deploy --ghidra-path /path/to/ghidraУкажите свой путь к установленной Ghidra. Деплой ставит расширение, запускает Ghidra и ждет готовности MCP. Нужны Java 21 и Python с uv или pip.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Проект связывает дизассемблер Ghidra с агентами через Model Context Protocol. Он состоит из плагина для Ghidra, который поднимает локальный HTTP-сервер, и Python-моста, отдающего инструменты агенту по MCP. Инструментов больше двухсот, и это не только чтение: декомпиляция и графы вызовов, переименование функций и переменных, комментарии, создание структур, союзов и перечислений, поиск строк и байтовых шаблонов, анализ импортов и экспортов, эмуляция кода через EmulatorHelper и интеграция с живым отладчиком. Есть пакетные операции для массовых правок, перенос документации между версиями бинарника по хешу функций и работа с общим сервером Ghidra. Часть правил именования и типизации перенесена в слой инструментов, чтобы результат оставался единообразным между сессиями. Поддерживаются режимы с GUI и без него, включая запуск в Docker.
Для кого. Для реверс-инженеров и аналитиков, которые разбирают бинарные файлы в Ghidra и хотят вести работу через агента.
Подходит, если
- Нужно декомпилировать и документировать функции в Ghidra через агента
- Нужно массово переименовать, прокомментировать и типизировать код в проекте Ghidra
- Нужно перенести документацию между версиями одного бинарника или работать с общим сервером Ghidra
Не подходит, если
- Нет установленной Ghidra и подходящей версии окружения (Java, Python)
- Нужно только разовое чтение, ради которого не хочется поднимать плагин и мост
Пример запроса к агенту
Задокументируй эту функцию в Ghidra: разбери декомпиляцию, переименуй переменные и добавь комментарийОграничения
Нужны Ghidra, Java 21 и Python с uv или pip, а версия плагина привязана к конкретной версии Ghidra, указанной в проекте. Скрипты на Python внутри Ghidra требуют расширения Jython. По умолчанию HTTP-сервер плагина слушает только localhost и не аутентифицирует запросы, это модель доверенного локального пользователя. Эндпоинты запуска произвольных скриптов выключены и включаются отдельной переменной, а перед выносом сервера за пределы localhost обязательно задать токен доступа.
Как отключить. Удалите запись сервера ghidra-mcp из конфигурации MCP вашего агента и удалите расширение GhidraMCP из Ghidra через File > Install Extensions.
MCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
| Переменные окружения | |
|---|---|
| GHIDRA_MCP_URL | Адрес HTTP-сервера плагина Ghidra, по умолчанию http://127.0.0.1:8089. |
| GHIDRA_MCP_ALLOW_SCRIPTS | Включает эндпоинты запуска произвольных скриптов, по умолчанию выключены. |
| GHIDRA_MCP_AUTH_TOKEN секрет | Токен доступа, обязателен перед выносом сервера за пределы localhost. |
Проверка безопасности
- Инструменты пишут в проект Ghidra: переименование, типы, комментарии, структуры
- Есть эндпоинты запуска произвольных Java и Python скриптов и живая отладка
- Сервер по умолчанию без аутентификации, при неверной настройке его можно вынести за localhost
Коротко о README
README представляет MCP-сервер, который соединяет возможности обратной разработки Ghidra с агентами и предлагает более двухсот инструментов с полным доступом на запись. Помимо чтения и декомпиляции есть переименование, типизация, комментарии, создание структур, запуск скриптов, эмуляция P-code и интеграция с отладчиком. Установка идет через python -m tools.setup: подготовка зависимостей, сборка через Maven и деплой расширения в Ghidra, поддерживаются GUI, headless и Docker. Отдельный раздел описывает перенос конвенций именования в слой инструментов и защиту при выносе сервера за localhost. Лицензия Apache 2.0.
Частые вопросы
Это отдельная программа или дополнение к Ghidra?
Это плагин для уже установленной Ghidra плюс Python-мост. Плагин поднимает локальный HTTP-сервер, мост отдает инструменты агенту по MCP.
Агент может выполнять произвольный код?
Эндпоинты запуска скриптов выключены по умолчанию и включаются отдельной переменной окружения. Включайте их, только если действительно нужно исполнять скрипты и вы доверяете вызывающей стороне.
Похожие
Скилл аудита безопасности кода от Cloudflare: агент проходит разведку, охоту по покрытию и независимую проверку находок и выдает структурированный отчет
Открытый стек NVIDIA для запуска OpenClaw, Hermes и LangChain Deep Agents в песочницах OpenShell с сетевыми политиками и управляемым инференсом
Сканер безопасности для скиллов и MCP агентов: ищет промпт-инъекции, утечки данных и риски цепочки поставок до установки
Статический анализ кода по правилам, похожим на сам код, со встроенным MCP-сервером для AI-агентов