Автономный реверс-инжиниринг с помощью LLM
Появился инструмент GhidraMCP — сервер Model Context Protocol (MCP), который интегрирует мощный фреймворк Ghidra с большими языковыми моделями. Главная цель проекта — предоставить LLM возможность самостоятельно проводить реверс-инжиниринг приложений, не требуя постоянного ручного вмешательства оператора. Сервер экспортирует ключевые функции Ghidra, позволяя ИИ-агенту анализировать бинарные файлы, декомпилировать код и исследовать структуру программы.
Ключевые возможности интеграции
GhidraMCP действует как мост между клиентом MCP и сервером Ghidra, предоставляя ИИ доступ к следующим инструментам:
- Декомпиляция и анализ: Прямой доступ к движку декомпиляции Ghidra для получения исходного кода из бинарников.
- Автоматическая именовка: LLM может автоматически переименовывать методы и переменные данных, улучшая читаемость кода.
- Исследование структуры: Возможность получать списки методов, классов, импортов и экспортов для построения графа вызовов.
Технические детали и установка
Решение состоит из плагина для Ghidra и Python-моста (bridge), который работает как HTTP-сервер. По умолчанию сервер слушает порт 8080 на localhost, но эти параметры можно настроить через Edit -> Tool Options -> GhidMCP HTTP Server. Для работы требуется установка Ghidra, Python 3 и MCP SDK. Версия плагина на текущий момент — 1.2.
Поддержка популярных MCP-клиентов
Проект демонстрирует совместимость с несколькими популярными клиентами, что упрощает внедрение в существующие рабочие процессы. Ниже приведена сводка по настройке для основных платформ:
| Клиент | Метод подключения | Ключевые параметры |
|---|---|---|
| Claude Desktop | Редактирование claude_desktop_config.json |
Команда: python bridge_mcp_ghidra.py --ghidra-server http://127.0.0.1:8080/ |
| Cline | Добавление Remote Server в интерфейсе | URL: http://127.0.0.1:8081/sse (требует запуска сервера с флагом --transport sse) |
| 5ire | Создание нового Tool в настройках | Command: python /ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py |
Сборка из исходного кода
Для разработчиков доступна возможность сборки из исходников. Процесс требует копирования специфичных JAR-файлов из директории Ghidra (например, Base.jar, Decompiler.jar) в папку lib/ проекта, после чего сборка осуществляется стандартной командой Maven: mvn clean package assembly:single. Результатом является ZIP-архив, содержащий готовый плагин GhidraMCP.jar и манифесты.
Источник: Github ↗
