В начале марта 2019 года агентство национальной безопасности (АНБ) США выложили в открытый доступ Гидру (Ghidra) – инструмент для обратного инжиниринга (software reverse engineering SRE).
На данный момент это самый мощный инструмент в своем роде, конкуренцию по возможностям может составить только IDA PRO, но она является платной, в отличие от бесплатной гидры.
Гидра написана на языке Java, имеет графический интерфейс и интерактивный дизассемблер. Работает на Windows, Linux и Mac.
Скачать гидру (Ghidra):
Исходный код гидры доступен на GitHub
Инструкция по установке
Поддерживаемые Платформы
- Microsoft Windows 7 или 10 (64-разрядная версия)
- Linux (64-разрядная версия, предпочтительнее CentOS 7)
- macOS (ОС Х) 10.8.3+
Примечание: все 32-разрядные ОС не поддерживаются.
Минимальные требования
Аппаратные средства:
- 4 ГБ ОЗУ
- 1 ГБ памяти
- Настоятельно рекомендуется использовать два монитора
Программное обеспечение:
- Java 11 Runtime and Development Kit (JDK)
Установка Ghidra
Чтобы установить Ghidra, просто извлеките файл дистрибутива в нужное место файловой системы, используя любую программу распаковки (встроенные утилиты ОС, 7-Zip, WinZip, WinRAR и т. д)
Примечания по установке:
- Ghidra не использует традиционную программу установки. Вместо этого файл дистрибутива Ghidra просто извлекается на месте в файловой системе. Такой подход имеет свои преимущества и недостатки. Для установки Ghidra для личного использования не требуются административные привилегии. Кроме того, поскольку установка Ghidra не обновляет конфигурации ОС, такие как реестр Windows, удаление Ghidra так же просто, как удаление каталога установки Ghidra. Ghidra не будет автоматически создавать ярлык на рабочем столе или отображаться в меню запуска приложения.
- Для извлечения Ghidra в определенные файловые системы (например, C:\), а также для установки сервера Ghidra в качестве службы могут потребоваться права администратора.
- Ghidra использует каталоги вне своего установочного каталога для управления как временными, так и долговечными файлами кэша. Ghidra пытается использовать стандартные каталоги ОС, предназначенные для этих целей, чтобы избежать нескольких проблем, таких как хранение больших объемов данных в перемещаемом профиле. Если есть подозрение, что расположение этих каталогов по умолчанию вызывает проблемы, их можно изменить, изменив соответствующие свойства в файле support/launch.properties.
Примечания по Java
Для Windows:
Для запуска Ghidra требуется поддерживаемая версия Java Runtime and Development Kit. Путь до JDK должен быть прописан в PATH
в Переменных средах
. Извлеките дистрибутив JDK (.zip-файл) в нужное место и добавьте каталог bin JDK в свой PATH:
1. Извлечение JDK:
- Щелкните правой кнопкой мыши файл zip и выберите
извлечь все...
- Нажмите кнопку
Извлечь
2. Открыть окно Переменные среды:
- Windows 10: Щелкните правой кнопкой мыши на кнопке
Пуск Windows
и выберитеСистема
- Windows 7: Нажмите кнопку
Пуск
, щелкните правой кнопкой мыши наКомпьютер
и выберите пунктСвойства
- Щелкните
Дополнительные параметры системы
- Щелкните
переменные среды...
3. Добавьте каталог bin JDK в переменную PATH:
- В разделе системные переменные выделите
PATH
и нажмите кнопкуИзменить...
- Впишите путь до папки
bin
извлеченного архива
Linux и macOS (OS X): извлечение дистрибутива JDK (.tar.gz file) в нужное место и добавьте каталог bin JDK в PATH:
1. Извлеките JDK:
- tar xvf <JDK distribution .tar.gz>
2. Откройте ./~ bashrc редактором по вашему выбору. Например:
- vi ~/.bashrc
3. В самом конце файла добавьте каталог JDK bin в переменную PATH:
- export PATH=<path of extracted JDK dir>/bin:$PATH
4. Сохраните файл
5. Перезапустите все открытые окна терминала, чтобы изменения вступили в силу
В некоторых случаях может потребоваться, чтобы Ghidra запускалась с определенной версией Java вместо версии, которую Ghidra автоматически находит. Чтобы заставить Ghidra запускаться с определенной версией Java, установите свойство JAVA_HOME_OVERRIDE в файле support/launch.properties. Если для этого свойства установлена несовместимая версия Java, Ghidra вернется к автоматическому поиску совместимой версии.
Структура каталога установки Ghidra
Когда Ghidra установлена, запускаемое программное обеспечение извлекается в новый каталог, который называется <GhidraInstallDir>. Ниже приводится описание каталогов и файлов верхнего уровня, которые можно найти после завершения извлечения файла дистрибутива.
- Ghidra – базовый каталог. Содержит файлы, необходимые для запуска Ghidra.
- Extensions – дополнительные компоненты, которые могут расширить функциональность Ghidra и интегрировать ее с другими инструментами.
- GPL – автономные программы поддержки GPL.
- server – содержит файлы, связанные с установкой и администрированием сервера Ghidra.
- support – содержит файлы, полезные для отладки Ghidra.
- docs – содержит документацию по Ghidra, такую как заметки о выпуске, файлы API, учебные пособия и т. д.
- ghidraRun.bat – скрипт, используемый для запуска Ghidra.
- LICENSE.txt – информация о лицензии Ghidra.
- licenses – содержит лицензии, используемые Ghidra.
Использование гидры (Ghidra)
В графическом режиме (GIU Mode)
- Перейдите к <GhidraInstallDir>
- Запустите ghidraRun.bat (Windows) или ghidraRun (Linux или macOS)
Ghidra Server
Ghidra может поддержать нескольких пользователей, работающих вместе над одним проектом. Отдельные пользователи Ghidra запускают и работают над своими собственными локальными копиями конкретного проекта Ghidra, но проверяют изменения в общем репозитории, содержащем все фиксации в этом репозитории. Для получения подробной информации об установке/настройке сервера Ghidra см. <GhidraInstallDir>/server/svrREADME.html.
Пакетный Режим (Headless Mode)
Ghidra традиционно запускается в режиме GUI. Тем не менее, она также способна работать в режиме командной строки. Для получения дополнительной информации см. <GhidraInstallDir>/support/analyzeHeadlessREADME.html.
Single Jar Mode
Как правило, Ghidra устанавливается как целая структура каталогов, которая позволяет модульное включение или удаление наборов функций, а также предоставляет множество файлов, которые могут быть расширены или настроены. Тем не менее, бывают случаи, когда было бы полезно сжать все или некоторые модули Ghidra в один файл jar за счет параметров конфигурации. Это облегчает запуск Ghidra из командной строки для автономной работы или для использования в качестве библиотеки возможностей обратного инжиниринга для другого Java-приложения.
Одиночный файл ghidra.jar можно создать с помощью скрипта <GhidraInstallDir>/support/buildGhidraJar.
Расширения
Расширения являются необязательными компонентами, которые могут:
- Расширьте функциональность Ghidra с помощью экспериментальных или пользовательских плагинов или анализаторов Ghidra.
- Интеграция других инструментов с Ghidra, таких как Eclipse или IDAPro.
Ghidra поставляется со следующими расширениями, доступными для использования (и по умолчанию неустановленными), которые можно найти в каталоге <GhidraInstallDir>/Extensions.
- Eclipse: плагин GhidraDev Eclipse для уже существующей установки Eclipse. Для получения информации об установке и использовании плагина GhidraDev Eclipse см. <GhidraInstallDir>/Extensions/Eclipse/GhidraDev/GhidraDev_README.html.
- Ghidra: расширения Гидры. См. Примечания по расширению Ghidra для получения дополнительной информации.
- IDAPro: плагины / загрузчики IDAPro для передачи данных с помощью Ghidra.
Примечания по расширению Ghidra
Расширения предназначены для установки или удаления инструментов из интерфейса Ghidra:
- Выберите File → Install Extensions…
- Установите флажки для установки расширений; снимите флажки для удаления расширений
- Перезапустите Ghidra, чтобы изменения вступили в силу
Установка или удаление расширений Ghidra может завершиться ошибкой, если у пользователя нет прав на запись в <GhidraInstallDir>. Это может произойти, если пользователь запускает Ghidra из общей папки установки. В этом случае владелец каталога установки Ghidra будет отвечать за управление тем, какие расширения Ghidra доступны для данной конкретной установки Ghidra.
Возможно установить и деинсталлировать расширения Ghidra вручную, когда GUI не доступен. Это может потребоваться, если системный администратор управляет расширениями Ghidra общей установки Ghidra от имени пользователя или если пользователь хочет установить расширение в установку Ghidra, которая используется только в командной строке.
Чтобы установить расширение в этих случаях, просто извлеките нужные файлы архива расширений Ghidra в каталог <GhidraInstallDir>/Ghidra/Extensions.
Полное описание доступно на https://ghidra-sre.org/InstallationGuide.html
Добавить комментарий