Ghidra MCP Server: AI-анализ бинарников и кросс-версионный поиск функций | AiManual
AiManual Logo Ai / Manual.
04 Фев 2026 Инструмент

Ghidra MCP Server: 110 инструментов для AI-реверса и поиска функций между версиями

Как подключить 110 инструментов Ghidra к Claude через MCP для анализа бинарников, нормализованного хеширования функций и поиска между версиями ПО.

Когда AI-ассистент начинает разбираться в ассемблере

Представьте: вы спрашиваете у Claude, что делает конкретная функция в дизассемблированной библиотеке Windows. Он не просто строит предположения - он открывает реальный бинарник в Ghidra, вычисляет нормализованные хеши функций, сравнивает их с базой данных и показывает вам, как этот же код выглядел в предыдущей версии. Это не фантастика. Это Ghidra MCP Server - мост между 110 инструментами самого мощного open-source реверс-инжиниринга и современными LLM.

💡
На 04.02.2026 проект обновился до версии 1.2.0 с полной поддержкой Ghidra 11.3 и новыми инструментами для анализа эксплойтов.

Что умеет этот монстр из 110 инструментов?

Цифра 110 звучит как маркетинг, но это реальное количество отдельных операций, которые AI-ассистент получает для работы с бинарниками. Все они группируются в логические блоки:

  • Анализ и дизассемблирование: Загрузка бинарников, автоматический анализ, определение архитектуры (x86, ARM, MIPS), создание проектов Ghidra
  • Нормализованное хеширование функций - вот где начинается магия. Алгоритм игнорирует адреса и константы, вычисляя хеш, который остается одинаковым между разными сборками одной функции
  • Кросс-версионный поиск: Найти функцию в версии 1.0.0, затем найти ее же в 2.0.0, даже если код немного изменился
  • Работа с символами и именами: Экспорт/импорт символов, переименование функций, добавление комментариев
  • Экспорт данных: Выгрузка дизассемблированного кода, CFG (Control Flow Graph), строк, перекрестных ссылок

Самый безумный пример из документации - проверка на Diablo II. Разработчики загрузили бинарник игры 2000 года, проанализировали функции защиты от читов и нашли их эволюцию через патчи. Claude через MCP мог отвечать на вопросы типа "Как работает проверка легитимности игрока в патче 1.10?"

Нормализованный хешинг: почему это работает, когда все остальное ломается

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

# Упрощенная логика нормализации (реальная реализация в Ghidra сложнее)
def normalize_function_instructions(instructions):
    normalized = []
    for instr in instructions:
        # Убираем абсолютные адреса
        if instr.is_call_or_jump_to_absolute_address():
            normalized.append("CALL/JMP [ADDR]")
        # Нормализуем константы
        elif instr.has_immediate_constant():
            normalized.append(f"{instr.opcode} [CONST]")
        else:
            normalized.append(str(instr))
    return hash("".join(normalized))

Результат? Функция `calculate_damage` в сборке от Visual Studio 2019 и та же функция в сборке от Clang получают одинаковый хеш. Даже если они расположены по разным адресам и используют разные регистры.

Важный нюанс на 2026 год: нормализованный хешинг все еще не идеален для сильно обфусцированного кода или когда компилятор радикально меняет логику оптимизаций между версиями. Но для 80% случаев он работает как часы.

Установка: Docker или родная система - выбирайте боль

Документация предлагает два пути, и оба имеют свои шипы.

1Docker-вариант (чище, но медленнее)

Контейнер включает Ghidra 11.3 и все зависимости. Запускается одной командой, но каждый вызов инструмента проходит через слои контейнеризации. Для анализа больших бинарников (сотни мегабайт) это заметно.

docker run -p 8000:8000 \
  -v /path/to/binary/files:/data \
  ghcr.io/example/ghidra-mcp-server:1.2.0

2Локальная установка (быстрее, но грязнее)

Требует Java 17+, Python 3.11+ и собственно Ghidra. Настройка MCP-сервера в Claude Desktop выглядит так:

// claude_desktop_config.json
{
  "mcpServers": {
    "ghidra": {
      "command": "python",
      "args": [
        "/path/to/ghidra_mcp_server/server.py",
        "--ghidra-path", "/opt/ghidra_11.3",
        "--projects-dir", "/tmp/ghidra_projects"
      ]
    }
  }
}

Первый запуск всегда заканчивается ошибкой разрешений на директорию проектов. Это не баг - это фича безопасности Ghidra.

Работа в бою: от вопросов к результатам

После настройки вы получаете Claude, который понимает команды типа:

Ваш запрос ClaudeЧто происходит на бэкенде
"Загрузи файл /data/libcrypto.so и проанализируй его"Ghidra создает проект, запускает анализ, определяет функции
"Найди функцию шифрования AES в этом бинарнике"Поиск по строкам, сигнатурам, импортам, экспортам
"Сравни функцию RSA_verify из этой версии с версией 1.1.1"Вычисление нормализованных хешей, поиск в базе предыдущих анализов
"Покажи граф вызовов для проверки подписи"Генерация CFG, экспорт в DOT или PNG через Graphviz

Реальные сценарии использования выглядят так:

  • Анализ уязвимостей: "Найди все использования memcpy без проверки границ в этой библиотеке"
  • Патч-анализ: "Что изменилось в функции обработки сетевых пакетов между патчами безопасности?"
  • Малайка-анализ: "Сравни этот подозрительный драйвер с легитимным от производителя"
  • Образовательные цели: "Объясни, как работает антиотладочная техника в этой функции"

Альтернативы? Их почти нет, и вот почему

Попытки подключить IDA Pro к AI существуют, но все они упираются в закрытость API и стоимость. Radare2/r2 имеет некоторые скрипты, но ничего сравнимого по количеству инструментов.

Binary Ninja предлагает Cloud API, но он платный и не дает такого уровня контроля. Ghidra MCP Server остается уникальным сочетанием:

  1. Полностью открытый исходный код
  2. Интеграция с ведущими LLM через стандарт MCP
  3. 110 готовых инструментов из коробки
  4. Поддержка нормализованного хеширования
  5. Работа без облака (ваши бинарники никуда не уходят)

Единственный реальный конкурент - написать свой MCP-сервер с нуля. Но зачем, если здесь уже все сделано?

Кому это нужно прямо сейчас?

Не всем. Если вы:

  • Реверс-инженер - это ваш новый основной инструмент. Особенно для рутинных задач вроде сравнения версий
  • Исследователь безопасности - анализ патчей и поиск 1-day уязвимостей ускоряется в разы
  • Разработчик антивирусов/EDR - автоматизация анализа малайки
  • Преподаватель информационной безопасности - живая демонстрация работы с бинарниками

Если же вы фронтенд-разработчик, который иногда смотрит на дизассемблированный код - может, подождите. Кривая обучения все еще крутая.

Подводные камни, о которых молчат туториалы

После месяца использования упираешься в несколько неприятных реалий:

Производительность. Анализ бинарника в 500 МБ занимает минуты. Claude ждет ответа от Ghidra, и если у вас медленный диск или мало RAM - это больно.

Контекст LLM ограничен. Даже с оптимизациями контекста вы не можете загрузить в промпт весь дизассемблированный код большой библиотеки.

Ложные срабатывания нормализованного хеширования. Иногда две разные функции получают одинаковый хеш. Особенно в маленьких функциях-обертках.

Что дальше? Прогноз на 2026-2027

Разработчики обещают в ближайших релизах:

  • Интеграцию с Syrin Debugger для отладки MCP-серверов
  • Поддержку распределенного анализа: несколько Ghidra-серверов для больших бинарников
  • Экспорт результатов в форматы для RAG-систем
  • Автоматическую генерацию эксплойтов на основе найденных уязвимостей (спорно, но вероятно)

Главный тренд - специализированные MCP-серверы для узких задач. После успеха Ghidra MCP появились аналоги для анализа сетевого трафика, мобильных приложений, даже для реверс-инжиниринга FPGA-битстримов.

Мой совет? Начните с Docker-версии и маленького бинарника. Например, утилиты из Linux coreutils. Спросите Claude: "Какие функции работы со строками есть в /bin/ls?" Когда увидите ответ с реальными адресами и дизассемблированным кодом - вы поймете, что это работает. А потом попробуйте сравнить /bin/ls из Ubuntu 22.04 и 24.04. Вот тогда начнется настоящая магия.

И последнее: не пытайтесь использовать это через веб-интерфейс Claude. Только Claude Desktop. Веб-версия на 04.02.2026 все еще не поддерживает кастомные MCP-серверы. Ждем анонс от Anthropic - обещают к концу квартала.