Выпущена версия Ghidra 11.3

Исследовательское управление АНБ выпустило версию Ghidra 11.3, фреймворка для реверс-инжиниринга программного обеспечения (SRE) с открытым исходным кодом. Она предлагает расширенные инструменты анализа, позволяющие пользователям вскрывать и исследовать скомпилированный код на различных платформах, включая Windows, macOS и Linux.

Ghidra 11.3 полностью совместима с данными проектов из предыдущих версий. Однако программы и архивы типов данных, созданные или измененные в версии 11.3, не будут совместимы с предыдущими версиями Ghidra.

Код Visual Studio

Ghidra 11.3 заменяет GhidraScript VSCodeProjectScript.java (представленный в 11.2) двумя новыми действиями в инструменте CodeBrowser:

  • Tools → Create VSCode Module Project… – Создает папку проекта Visual Studio Code со скелетным модулем для разработки расширений Ghidra (плагинов, анализаторов, загрузчиков и т. д.), включая пусковые установки для отладки и задачу Gradle для экспорта в качестве расширения Ghidra.
  • Редактировать скрипт с помощью Visual Studio Code (в менеджере скриптов) – открывает выбранный скрипт в рабочей области VS Code, автоматически созданной в каталоге настроек пользователя Ghidras, предлагая современную альтернативу Eclipse с такими функциями, как автозаполнение и навигация.

Ghidra пытается найти вашу установку VS Code автоматически, но при необходимости вы можете настроить ее через Edit → Tool Options → Visual Studio Code Integration.

PyGhidra

Библиотека PyGhidra Python, первоначально разработанная Центром киберпреступности Министерства обороны США (DC3) под названием Pyhidra, обеспечивает прямой доступ к API Ghidra в родном интерпретаторе CPython 3 через JPype. Он предлагает удобные инструменты для настройки анализа на заданном образце и локального выполнения скриптов Ghidra. Кроме того, PyGhidra включает плагин Ghidra, который интегрирует поддержку CPython 3 непосредственно в графический интерфейс Ghidra.

Эмулятор

В новом выпуске Ghidra появился ускоренный эмулятор p-кода, разработанный для повышения производительности при динамическом анализе. Хотя JitPcodeEmulator еще не интегрирован в пользовательский интерфейс, он доступен для разработки скриптов и плагинов как практически готовая замена существующему PcodeEmulator. Эта функция повышает скорость эмуляции, что делает ее ценным инструментом для опытных пользователей, желающих анализировать и выполнять код более эффективно. Однако, поскольку это ранняя реализация, разработчикам следует ожидать возможных ошибок и обращаться к Javadoc за подробностями использования и интеграции.

Отладчик

Ghidra 11.3 оптимизирует свою инфраструктуру отладки, удалив устаревшие пусковые устройства и коннекторы IN-VM и GADP, заменив их реализациями на базе TraceRmi. Наряду с этой чисткой был также удален вспомогательный код и API для этих старых коннекторов.

Кроме того, выпуск знаменует собой шаг вперед в возможностях отладки на уровне ядра – коннектор Ghidras lldb теперь поддерживает отладку ядра macOS, а коннектор dbgeng может отлаживать ядро Windows, запущенное в виртуальной машине через eXDI, расширяя возможности Ghidras для низкоуровневого анализа системы.

График функций

В новой версии улучшен функциональный график, что делает навигацию и визуализацию кода более эффективной. Новый вариант компоновки «Flow Chart» улучшает организацию структур функций, предлагая альтернативный способ анализа потока управления. Пользователи теперь могут настраивать положение спутникового вида, что позволяет сделать рабочее пространство более гибким. Новый ярлык (Ctrl + Space) позволяет быстро переключаться между видом листинга и графиком функций, при этом можно начать работу как с полным, так и с частичным увеличением масштаба, что обеспечивает более плавный и интуитивно понятный рабочий процесс при обратном проектировании.

Информация об исходном файле

Ghidra 11.3 улучшает отображение исходного кода, позволяя интегрировать информацию об исходных файлах и строках с помощью программы SourceFileManager. Анализаторы DWARF, PDB и Go теперь автоматически записывают эти данные, а пользователи также могут добавлять информацию об исходном коде программно, примеры скриптов доступны в категории SourceMapping script. Эту информацию можно просмотреть в поле Source Map Listing или с помощью плагина SourceFilesTablePlugin, доступного через Window → Source Files and Transforms в Code Browser.

Новое действие «View Source…» позволяет пользователям открывать исходные файлы в нужной строке в Eclipse или Visual Studio Code, настраиваемое через опцию инструмента «Source Files and Transforms». Плагин SourceFilesTablePlugin также позволяет пользователям изменять пути к сохраненным исходным файлам перед их запуском в выбранном редакторе, что улучшает рабочий процесс при отладке и обратном проектировании.

Процессоры

В новом выпуске улучшена поддержка x86 AVX-512 за счет реализации маскирования записи и чтения инструкций EVEX, что обеспечивает точную семантику этих инструкций. Декомпиляция TI_MSP430 улучшена благодаря обновлению спецификаций компилятора процессоров, что повышает точность анализа. Кроме того, была исправлена обработка инструкций ARM VFPv2, что позволило решить предыдущие проблемы дизассемблирования.

Перевод строк и поиск текста

В Ghidra 11.3 расширена поддержка перевода строк с помощью новой опции LibreTranslate, позволяющей пользователям использовать собственный сервис перевода для повышения конфиденциальности. Этот плагин отключен по умолчанию и может быть включен через File → Configure. Кроме того, Ghidra теперь поддерживает полнотекстовый поиск по всем декомпилированным функциям, динамически подключая последние результаты декомпиляции. Эта функция, доступная через Поиск → Декомпилированный текст…, улучшает анализ кода, но может занимать время в зависимости от сложности бинарных файлов.

Ghidra 11.3 доступна на GitHub.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

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