Обратная разработка вредоносного ПО: начало работы с Ghidra, часть 1

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Добро пожаловать обратно, мои начинающие кибервоины!

Существует множество отличных инструментов для реверс-инжиниринга (см. «Реверс-инжиниринг, часть 3: Начало работы с IDA Pro» и «Часть 5: Начало работы с OllyDbg»), но теперь у нас есть отличный новый инструмент, известный как Ghidra. Ghidra была разработана Агентством национальной безопасности США (ведущим агентством внутренней разведки США, ответственным за разработку вредоносного ПО Stuxnet и EternalBlue ), одним из ведущих шпионских агентств в мире.

6a4a49_afb7730c2bfb46a8b27cad6c90b3cf96~mv2.png


Впервые мы узнали о Ghidra из утечки WikiLeaks Vault 7 в 2017 году, а весной 2019 года она была выпущена как бесплатное программное обеспечение с открытым исходным кодом (по лицензии Apache). Это превосходный инструмент для реверс-инжиниринга, и, в отличие от Ida Pro, он бесплатный!

Ghidra обладает практически всеми функциональными возможностями Ida Pro, но зато без дополнительных затрат, так что если вы начинаете заниматься обратным проектированием, то это, вероятно, подходящее вам программное обеспечение.

Благодаря своей эффективности и привлекательной цене я буду использовать Ghidra для проведения серии обучающих программ по обратной разработке вредоносных программ здесь, в Hackers-Arise.

Я настоятельно рекомендую вам прочитать следующие руководства, прежде чем приступать к работе с Ghidra:

  1. Обратная разработка вредоносного ПО, часть 1: Начало работы
  2. Обратная разработка вредоносного ПО, часть 2: основы ассемблера
  3. Обратная разработка вредоносного ПО, часть 4: Внутреннее устройство Windows
Шаг №1: Загрузите Ghidra

Скачать Ghidra можно здесь . Поскольку Ghidra написана на Java, она доступна практически для всех платформ, включая Windows, Mac OS и Linux. Для демонстрации Ghidra я буду использовать Windows 10.

Поскольку Ghidra — это приложение Java, для которого требуется JDK 11, убедитесь, что у вас установлена последняя версия JDK, а если нет, загрузите ее с сайта Oracle.

Шаг №2: Запустите Ghidra

После загрузки Ghidra вы можете запустить ее, щелкнув по файлу .bat (что-то вроде старой школы).

6a4a49_2fc05f051d134f29ada984f48e332f8d~mv2.png


Ghidra открывается, демонстрируя этот логотип на короткое время…

6a4a49_18eabacb74074c2f9a44f971267359af~mv2.png


…а затем открывает это окно для запуска вашего первого проекта. Проекты похожи на папки и могут содержать несколько файлов, над которыми вы работаете.

6a4a49_ee681de58b5c4b91a6f61b3ff1a0e7c3~mv2.png


Нажмите «Новый проект».

6a4a49_bed9b193d0b144a3962fce5bfd0ce970~mv2.png


Откроется окно, подобное показанному ниже. Одна из функций Ghidra — возможность совместной работы над файлом или проектом. В этом случае нажмите «Общий проект». Здесь мы будем работать над проектом индивидуально, поэтому нажмите «Необщий проект». Затем нажмите «Далее».

6a4a49_5b16e7ea91a34482bec29a243331939e~mv2.png


Затем вам будет предложено указать местоположение и имя вашего проекта. В Windows по умолчанию проект будет помещен в каталог C:\User<Name>ghidra. Я буду использовать его. Затем введите имя вашего проекта. В данном случае я назову свой проект «MyFirstGhidraProject».

6a4a49_7a9af611424e4fa1b9e294740b90e885~mv2.png


Далее нам нужно импортировать файл. Это программа или вредоносное ПО, которое вы хотите проанализировать. Выберите «Файл» -> «Импортировать файл».

6a4a49_01f3b4bd698c466d87cb2537b1bd514c~mv2.png


Выберите файл для анализа. В данном случае я буду анализировать crackme0x00.exe (эти простые файлы crackme доступны по адресу https://github.com/Maijin/radare2-workshop-2015/tree/master/IOLI-crackme ) .

6a4a49_a01305618d2b470d88d5f82f2f82300a~mv2.png


Когда вы выберете файл, Ghidra предоставит вам информацию ниже. Нажмите «ОК».

6a4a49_8b41ff84b19d46998d5c303d73e672bd~mv2.png


Затем Ghidra отображает экран, подобный приведенному ниже, с ключевой информацией о файле.

6a4a49_e3e92e4bcaaf45ad83c87707617ebcac~mv2.png


Затем появится этот экран с вашим проектом и импортированным файлом. Вы можете дважды щёлкнуть по файлу или перетащить его на зелёного дракона Гидра над ним.

6a4a49_fd9b86de32a349238e8ae4e34702cbbd~mv2.png


Затем Ghidra начинает работу. Сначала она отображает ассемблерный язык программы в центральном окне листинга, а затем спрашивает, хотите ли вы проанализировать файл. Нажмите «Да».

6a4a49_3402896cd34b4f0fa803ddf94ea43429~mv2.png


Теперь Ghidra проанализирует ваш файл и отобразит информацию, аналогичную четырем окнам ниже.

6a4a49_683f796f82a448c1a4bca0e754b17701~mv2.png


Вот эти четыре окна:

Окно №1 — это дерево символов

В этом окне можно просмотреть импорт, экспорт, функции, метки, классы и пространства имен двоичного файла.

Окно №2 — это окно листинга

В этом окне отображается разбивка кода на языке ассемблера.

Окно №3 — окно декомпилятора

Декомпилятор позволяет увидеть, как, скорее всего, будет выглядеть язык высокого уровня.

Окно №4 — это окно менеджера типов данных .

Менеджер типов данных позволяет просматривать все определенные типы данных.

Теперь вы готовы приступить к анализу и обратному проектированию этого файла!

Краткое содержание

Реверс-инжиниринг вредоносных программ — один из самых сложных и высокооплачиваемых навыков в области кибербезопасности. Ghidra — отличный инструмент для реверс-инжиниринга, работающий практически на любой платформе и доступный по очень привлекательной цене (бесплатно). В этой серии статей о реверс-инжиниринге мы будем использовать этот инструмент АНБ США для реверс-инжиниринга нескольких вредоносных программ, начиная с самых простых и постепенно переходя к более сложным.
 
Назад
Сверху Снизу