
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.
Комментарии (3)

Timmek
05.07.2026 17:36Но вы не переживайте, дорогие читатели, стоит вам использовать Claude хотя бы для чтение внешних .DLL, фильтра Антропиков быстро выбьют из вас это желание.
AndreyDmitriev
Ещё есть the Ghidra Book за авторством Chris Eagle и Kara Nance, недавно вышло второе издание. В конце там небольшое приложение для тех, кто знаком с IDA. Основное отличие, что Гидра как бы проектно ориентированная, ну то есть вначале надо создать проект, а потом импортировать туда бинарники для анализа (в четвёртой главе всё детально расписано), а в Иде просто открыли и погнали.