0Pricing
Cyber Security Academy · Урок

Ghidra: навигация и аннотирование двоичных файлов

Импортируйте двоичный файл, изучайте дизассемблированный и декомпилированный код, переименовывайте переменные и добавляйте комментарии.

«Ghidra: навигация и аннотирование двоичных файлов» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.

Что такое Ghidra

Ghidra — бесплатный инструмент с открытым исходным кодом для обратной разработки, созданный NSA и опубликованный в 2019 году. Он поддерживает дизассемблирование, декомпиляцию, написание сценариев и совместный анализ в Linux, macOS и Windows.

Загрузка двоичного файла

Открытие двоичного файла в Ghidra:

  1. Создайте новый проект
  2. Импортируйте файл (Файл → Импортировать файл)
  3. Дождитесь завершения автоматического анализа (распознаются функции, строки и типы данных)
  4. Откроется CodeBrowser с представлениями дизассемблирования и декомпилятора

Интерфейс Ghidra

Основные окна Ghidra:

  • Дерево программ — разделы (.text, .data, .plt)
  • Дерево символов — функции, метки, импорт и экспорт
  • Листинг — представление дизассемблирования
  • Декомпилятор — реконструкция в виде псевдокода на C
  • Функции — список всех распознанных функций

Переход к точке входа

Начните анализ с точки входа программы или main():

  • Нажмите G, чтобы перейти к адресу или символу
  • Найдите «main» в дереве символов
  • Дважды щёлкните любую функцию, чтобы перейти к ней

Чтение вывода декомпилятора

Декомпилятор Ghidra создаёт псевдокод на C, который читать проще, чем ассемблер. Результат не будет идеальным: имена переменных обобщённые (param_1, local_10), а поток управления может выглядеть странно. Однако он достаточно ясно показывает логику, чтобы понять, что делает код.

Переименование переменных и функций

Аннотирование повышает читаемость:

  • Щёлкните переменную правой кнопкой мыши → Переименовать (или нажмите L)
  • Щёлкните функцию правой кнопкой мыши → Переименовать функцию
  • Добавляйте комментарии с помощью ; (в конце строки) или в стиле /*...*/

Переименование помогает постепенно накапливать контекст по мере изучения двоичного файла.

Распознавание строк

Строки незаменимы для понимания назначения программы:

  • Окно → Определённые строки показывает все строковые константы
  • Щёлкните строку, чтобы перейти к месту её использования в коде
  • Сообщения об ошибках, пути к файлам, URL-адреса и ключи реестра раскрывают функциональность

Перекрёстные ссылки (XREF)

Перекрёстные ссылки показывают, где вызывается или используется функция либо переменная. Нажмите X на любом символе, чтобы увидеть все ссылки. Это крайне важно для поиска места, где пользовательский ввод попадает в функцию или выполняются проверки безопасности.

Создание сценариев для Ghidra

В Ghidra есть API для создания сценариев на Python/Java:

# Python script to find all calls to strcpy:
from ghidra.program.model.symbol import RefType
for ref in currentProgram.getReferenceManager().getReferencesTo(toAddr(0x401234)):
    print(ref.getFromAddress())

Анализ вредоносных программ с помощью Ghidra

При анализе вредоносных программ:

  • Распознавайте приёмы противодействия анализу (защиту от отладки и обфускацию кода)
  • Находите функции сетевого взаимодействия (socket, connect, WinInet)
  • Находите криптографические функции (ищите константы S-блока AES: 0x63, 0x7c...)
  • Извлекайте URL-адреса C2 из расшифрованных строк

Ghidra и IDA Pro

Ghidra и IDA Pro:

  • Ghidra: бесплатная, с открытым исходным кодом, поддерживает сценарии и имеет хороший декомпилятор
  • IDA Pro: отраслевой стандарт, более быстрый анализ, лучшая экосистема подключаемых модулей, высокая стоимость ($$$)
  • Для большинства задач возможностей Ghidra вполне достаточно; IDA подходит для профессиональных лабораторий анализа вредоносных программ

Быстрая проверка: Ghidra

Какая функция Ghidra показывает все места в двоичном файле, где вызывается определённая функция или на неё либо переменную ссылаются?

Итоги урока

Ghidra — бесплатный инструмент реверс-инжиниринга, разработанный NSA, с возможностями дизассемблирования, декомпиляции и создания сценариев. Основной рабочий процесс: загрузить двоичный файл, запустить автоматический анализ, перейти к main(), использовать декомпилятор для изучения логики, переименовать переменные, применять XREF для отслеживания потока данных и искать строки для получения контекста. Аннотирование помогает последовательно углублять понимание. Создание сценариев автоматизирует повторяющиеся задачи анализа.

Часто задаваемые вопросы

Урок «Ghidra: навигация и аннотирование двоичных файлов» бесплатный?

Да — полный текст урока «Ghidra: навигация и аннотирование двоичных файлов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.

Чему я научусь в уроке «Ghidra: навигация и аннотирование двоичных файлов»?

Импортируйте двоичный файл, изучайте дизассемблированный и декомпилированный код, переименовывайте переменные и добавляйте комментарии. Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cyber Security Academy?

Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Ghidra: навигация и аннотирование двоичных файлов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cyber Security Academy?

Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Ghidra: навигация и аннотирование двоичных файлов
  2. Основы ассемблера x86/x64 для реверс-инженеров
  3. Динамический анализ с GDB и pwndbg
  4. Деобфускация и методы противодействия анализу
← Назад к Cyber Security Academy