pyghidra-lite — MCP-сервер для Claude Code: реверс бинарей
Реверс-инжиниринг через Ghidra с декомпиляцией, трассировкой вызовов и переносом адресов в смещения файла. Для разбора ELF, Mach-O и PE прямо из чата.
claude mcp add --env GHIDRA_INSTALL_DIR=<GHIDRA_INSTALL_DIR> --transport stdio pyghidra-lite -- uvx pyghidra-liteЧто делает pyghidra-lite
Сервер держит Ghidra в фоне и отдаёт агенту инструменты для декомпиляции, дизассемблирования и карты адресов. Первая версия поддерживает ELF, Mach-O и PE, включая код на Swift, Objective-C и Hermes. Ответы экономят токены, потому что сервер отдаёт только запрошенные фрагменты, а не целые листинги.
По умолчанию всё работает только на чтение: анализ не меняет ваш бинарь, а настройки сервера заморожены на время процесса. Единственный пишущий инструмент annotate (переименование, комментарии, прототипы) запускается с флагом --allow-write, и каждое изменение вы подтверждаете через запрос подтверждения MCP. Если клиент не умеет спрашивать, инструмент просто откажет.
Перед запуском нужен распакованный JDK 21 и Ghidra 11.x или 12.x. Homebrew, /opt/ghidra и ~/ghidra сервер находит сам, для остальных путей задайте GHIDRA_INSTALL_DIR. Проверка окружения — pyghidra-lite doctor, без неё проще наткнуться на отсутствующий декомпилятор. Плагин Claude тянет сервер через uvx, поэтому uv должен быть в PATH. Если в .mcp.json или ~/.claude.json уже есть ручная запись pyghidra-lite, уберите её, иначе инструменты продублируются.
Какие задачи решает
- разобрать незнакомый ELF-бинарник и найти точку входа
- декомпилировать функцию из Swift-приложения под macOS
- сопоставить адрес из отладчика со смещением в файле
- проследить, куда уходит значение аргумента
- пометить функции и структуры, чтобы агент помнил находки между сессиями
Примеры запросов агенту
- Проанализируй бинарь
/path/to/binaries/app: загрузи его и покажи список функций. - Декомпилируй функцию по адресу
0x1a2b3cи объясни, что она делает. - Переименуй эту функцию в
parse_configи оставь комментарий к её аргументам.
Как установить pyghidra-lite
Командой платформы
claude mcp add --env GHIDRA_INSTALL_DIR=<GHIDRA_INSTALL_DIR> --transport stdio pyghidra-lite -- uvx pyghidra-liteВместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from pyghidra-lite <команда>
Командой платформы
codex mcp add pyghidra-lite --env GHIDRA_INSTALL_DIR=<GHIDRA_INSTALL_DIR> -- uvx pyghidra-liteВместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from pyghidra-lite <команда>
Файл настроек
{
"mcpServers": {
"pyghidra-lite": {
"command": "uvx",
"args": [
"pyghidra-lite"
],
"env": {
"GHIDRA_INSTALL_DIR": "<GHIDRA_INSTALL_DIR>"
}
}
}
}Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from pyghidra-lite <команда>
Файл настроек
{
"servers": {
"pyghidra-lite": {
"type": "stdio",
"command": "uvx",
"args": [
"pyghidra-lite"
],
"env": {
"GHIDRA_INSTALL_DIR": "<GHIDRA_INSTALL_DIR>"
}
}
}
}Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from pyghidra-lite <команда>
Командой платформы
gemini mcp add -e GHIDRA_INSTALL_DIR=<GHIDRA_INSTALL_DIR> pyghidra-lite uvx pyghidra-liteВместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from pyghidra-lite <команда>
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о pyghidra-lite
Как установить pyghidra-lite в Claude Code?
Добавьте сервер командой claude mcp add pyghidra-lite -- uvx pyghidra-lite. Если Ghidra лежит не в стандартном месте, укажите путь: claude mcp add --env GHIDRA_INSTALL_DIR=<GHIDRA_INSTALL_DIR> --transport stdio pyghidra-lite -- uvx pyghidra-lite.
Что делает pyghidra-lite?
Даёт агенту инструменты Ghidra для декомпиляции, дизассемблирования и трассировки вызовов в ELF, Mach-O и PE, а также переносит адреса в смещения файла. Пишущий инструмент annotate включается отдельно и требует вашего подтверждения.
Что нужно, чтобы сервер запустился?
Распакованный JDK 21 и Ghidra 11.x или 12.x; если Ghidra не найдена автоматически, задайте GHIDRA_INSTALL_DIR. Состояние окружения показывает pyghidra-lite doctor.