Агентство национальной безопасности США во время проведения конференции RSA объявило об открытии доступа к инструментарию для проведения обратного инжиниринга Ghidra, который включает интерактивный дизассемблер с поддержкой декомпиляции в код на языке Си и предоставляет мощные средства для анализа исполняемых файлов. Код написан на языке Java и и в ближайшее время будет открыт под свободной лицензией Apache 2.0 (уже началось размещение кода на GitHub). Продукт доступен для загрузки с сайта ghidra-sre.org (сайт недоступен из российских подсетей).

Проект развивается на протяжении почти 20 лет и активно применяется спецслужбами США для выявления закладок, анализа вредоносного кода, изучения различных исполняемых файлов и разбора скпомпилированного кода. По своим возможностям продукт сопоставим с расширенной версии проприетарного пакета IDA Pro, но рассчитан исключительно на анализ кода и не включает в себя отладчик. С другой стороны, в Ghidra имеется поддержка декомпиляции в псевдокод, напоминающий язык Си (в IDA данная возможность доступна через сторонние плагины), а также более мощные средства для совместного анализа исполняемый файлов.

Основные особенности:

Поддержка различных наборов процессорных инструкций и форматов исполняемых файлов;
Поддержка анализа исполняемых файлов для платформ Linux, Windows и macOS;
В состав входят дизассемблер, ассемблер, декомпилятор, построить графа хода выполнения программы, модуль для выполнения скриптов и большой набор вспомогательных инструментов;
Возможность выполнения в интерактивном и автоматическом режимах;
Поддержка плагинов с реализацией новых компонентов;
Поддержка автоматизации действий и расширения существующей функциональности через подключения скриптов на языках Java и Python;
Наличие средств для совместной работы групп исследователей и координации работы при обратном инжиниринге очень крупных проектов.

Интересно, что через несколько часов после публикации Ghidra в пакете нашли уязвимость в реализации отладочного режима (отключен по умолчанию), в котором открывается сетевой порт 18001 для удалённой отладки приложения по протоколу JDWP (Java Debug Wire Protocol). По умолчанию сетевые соединения принимались на всех доступных сетевых интерфейсах, а не на 127.0.0.1, что позволяло подключиться к Ghidra с других систем и выполнить любой код в контексте приложения. Например, можно подключиться отладчиком, прервать выполнение через установку точки останова и подставить для дальнейшего исполнения свой код при помощи команды «print new», например, «print new java.lang.Runtime().exec(‘/bin/mkdir /tmp/dir’)».

Дополнительно можно отметить публикацию почти полностью переработанного выпуска открытого интерактивного дизассемблера REDasm 2.0. Программа отличается расширяемой архитектурой, позволяющей подключать обработчики дополнительных наборов инструкций и форматов файлов в форме модулей. Код проекта написан на языке С++ (интерфейс на базе Qt) и распространяется под лицензией GPLv3. Поддерживается работа в Windows и Linux.

В базовой поставке поддерживаются форматы PE, ELF, DEX (Android Dalvik), форматы прошивок Sony Playstation, XBox, GameBoy и Nintendo64. Из наборов инструкций поддерживаются x86, x86_64, MIPS,
ARMv7, Dalvik и CHIP-8. Из возможностей можно отметить поддержку интерактивного просмотра в стиле IDA, анализ многопоточных приложений, построение наглядного графа хода исполнения, движок обработки цифровых подписей (работа с файлами SDB) и средства для ведения проекта.

Источник

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here