Содержание

Ghidra: Инструкция для начинающих

Что такое Ghidra

Ghidra — это мощный фреймворк для анализа бинарных файлов, разработанный Агентством национальной безопасности США (NSA) и опубликованный как open-source. Поддерживает множество процессорных архитектур и платформ, предоставляет встроенный декомпилятор, инструменты для редактирования кода, исследования памяти, поиска уязвимостей и реверс-инжиниринга.

Установка

Интерфейс Ghidra

Раздел Описание
Project Manager Создание и загрузка проектов
CodeBrowser Основное рабочее окно
Decompiler Окно декомпиляции в C-подобный код
Listing/Bytes Ассемблер, байты, инструкции
Symbol Tree Символы, функции, метки, строки
Function Graph Визуальный граф вызовов
Memory/Registers Просмотр памяти, сегментов, регистров

Первичный анализ

1. Создайте новый проект

  1. Project → New Project → Non-Shared
  2. Назовите и выберите папку

2. Импортируйте бинарь

  1. File → Import File
  2. Выберите `.exe`, `.elf`, `.bin`, `.so`, `.dll` и т.д.
  3. Ghidra определит тип автоматически

3. Запустите анализ

  1. После импорта появится диалог `Auto Analysis`
  2. Выберите нужные опции (по умолчанию включены все)

4. Откройте CodeBrowser

  1. Дважды кликните на бинаре в дереве проекта
  2. Ghidra загрузит все сегменты, метки, функции

5. Навигация

  1. В CodeBrowser: переходите по функциям, меткам
  2. В Decompiler: читайте псевдокод
  3. Используйте Search → Functions, Strings, Constants

Клавиши и управление

Горячая клавиша Действие
`Ctrl+Shift+G` Перейти к адресу
`D` Установить тип данных
`L` Переименовать метку
`F2` Декомпилировать функцию
`G` Создать функцию
`U` Удалить элемент
`Shift+E` Изменить байты вручную

Пример анализа "HelloWorld.exe"

1. Импортируйте файл 2. Разрешите Auto Analysis 3. Перейдите к точке входа (`entry`) 4. Используйте декомпилятор (F2) 5. Найдите вызов `printf` или `puts` 6. Переименуйте функцию, пометьте аргументы 7. Экспортируйте декомпилированный код (File → Export Function)

Расширение возможностей

Полезные скрипты

Полезные ссылки

Советы новичку