Добро пожаловать обратно, мои начинающие кибервоины!
Существует множество отличных инструментов для реверс-инжиниринга (см. «Реверс-инжиниринг, часть 3: Начало работы с IDA Pro» и «Часть 5: Начало работы с OllyDbg»), но теперь у нас есть отличный новый инструмент, известный как Ghidra. Ghidra была разработана Агентством национальной безопасности США (ведущим агентством внутренней разведки США, ответственным за разработку вредоносного ПО Stuxnet и EternalBlue ), одним из ведущих шпионских агентств в мире.
Впервые мы узнали о Ghidra из утечки WikiLeaks Vault 7 в 2017 году, а весной 2019 года она была выпущена как бесплатное программное обеспечение с открытым исходным кодом (по лицензии Apache). Это превосходный инструмент для реверс-инжиниринга, и, в отличие от Ida Pro, он бесплатный!
Ghidra обладает практически всеми функциональными возможностями Ida Pro, но зато без дополнительных затрат, так что если вы начинаете заниматься обратным проектированием, то это, вероятно, подходящее вам программное обеспечение.
Благодаря своей эффективности и привлекательной цене я буду использовать Ghidra для проведения серии обучающих программ по обратной разработке вредоносных программ здесь, в Hackers-Arise.
Я настоятельно рекомендую вам прочитать следующие руководства, прежде чем приступать к работе с Ghidra:
Скачать Ghidra можно здесь . Поскольку Ghidra написана на Java, она доступна практически для всех платформ, включая Windows, Mac OS и Linux. Для демонстрации Ghidra я буду использовать Windows 10.
Поскольку Ghidra — это приложение Java, для которого требуется JDK 11, убедитесь, что у вас установлена последняя версия JDK, а если нет, загрузите ее с сайта Oracle.
Шаг №2: Запустите Ghidra
После загрузки Ghidra вы можете запустить ее, щелкнув по файлу .bat (что-то вроде старой школы).
Ghidra открывается, демонстрируя этот логотип на короткое время…
…а затем открывает это окно для запуска вашего первого проекта. Проекты похожи на папки и могут содержать несколько файлов, над которыми вы работаете.
Нажмите «Новый проект».
Откроется окно, подобное показанному ниже. Одна из функций Ghidra — возможность совместной работы над файлом или проектом. В этом случае нажмите «Общий проект». Здесь мы будем работать над проектом индивидуально, поэтому нажмите «Необщий проект». Затем нажмите «Далее».
Затем вам будет предложено указать местоположение и имя вашего проекта. В Windows по умолчанию проект будет помещен в каталог C:\User<Name>ghidra. Я буду использовать его. Затем введите имя вашего проекта. В данном случае я назову свой проект «MyFirstGhidraProject».
Далее нам нужно импортировать файл. Это программа или вредоносное ПО, которое вы хотите проанализировать. Выберите «Файл» -> «Импортировать файл».
Выберите файл для анализа. В данном случае я буду анализировать crackme0x00.exe (эти простые файлы crackme доступны по адресу https://github.com/Maijin/radare2-workshop-2015/tree/master/IOLI-crackme ) .
Когда вы выберете файл, Ghidra предоставит вам информацию ниже. Нажмите «ОК».
Затем Ghidra отображает экран, подобный приведенному ниже, с ключевой информацией о файле.
Затем появится этот экран с вашим проектом и импортированным файлом. Вы можете дважды щёлкнуть по файлу или перетащить его на зелёного дракона Гидра над ним.
Затем Ghidra начинает работу. Сначала она отображает ассемблерный язык программы в центральном окне листинга, а затем спрашивает, хотите ли вы проанализировать файл. Нажмите «Да».
Теперь Ghidra проанализирует ваш файл и отобразит информацию, аналогичную четырем окнам ниже.
Вот эти четыре окна:
Окно №1 — это дерево символов
В этом окне можно просмотреть импорт, экспорт, функции, метки, классы и пространства имен двоичного файла.
Окно №2 — это окно листинга
В этом окне отображается разбивка кода на языке ассемблера.
Окно №3 — окно декомпилятора
Декомпилятор позволяет увидеть, как, скорее всего, будет выглядеть язык высокого уровня.
Окно №4 — это окно менеджера типов данных .
Менеджер типов данных позволяет просматривать все определенные типы данных.
Теперь вы готовы приступить к анализу и обратному проектированию этого файла!
Краткое содержание
Реверс-инжиниринг вредоносных программ — один из самых сложных и высокооплачиваемых навыков в области кибербезопасности. Ghidra — отличный инструмент для реверс-инжиниринга, работающий практически на любой платформе и доступный по очень привлекательной цене (бесплатно). В этой серии статей о реверс-инжиниринге мы будем использовать этот инструмент АНБ США для реверс-инжиниринга нескольких вредоносных программ, начиная с самых простых и постепенно переходя к более сложным.
Существует множество отличных инструментов для реверс-инжиниринга (см. «Реверс-инжиниринг, часть 3: Начало работы с IDA Pro» и «Часть 5: Начало работы с OllyDbg»), но теперь у нас есть отличный новый инструмент, известный как Ghidra. Ghidra была разработана Агентством национальной безопасности США (ведущим агентством внутренней разведки США, ответственным за разработку вредоносного ПО Stuxnet и EternalBlue ), одним из ведущих шпионских агентств в мире.
Впервые мы узнали о Ghidra из утечки WikiLeaks Vault 7 в 2017 году, а весной 2019 года она была выпущена как бесплатное программное обеспечение с открытым исходным кодом (по лицензии Apache). Это превосходный инструмент для реверс-инжиниринга, и, в отличие от Ida Pro, он бесплатный!
Ghidra обладает практически всеми функциональными возможностями Ida Pro, но зато без дополнительных затрат, так что если вы начинаете заниматься обратным проектированием, то это, вероятно, подходящее вам программное обеспечение.
Благодаря своей эффективности и привлекательной цене я буду использовать Ghidra для проведения серии обучающих программ по обратной разработке вредоносных программ здесь, в Hackers-Arise.
Я настоятельно рекомендую вам прочитать следующие руководства, прежде чем приступать к работе с Ghidra:
- Обратная разработка вредоносного ПО, часть 1: Начало работы
- Обратная разработка вредоносного ПО, часть 2: основы ассемблера
- Обратная разработка вредоносного ПО, часть 4: Внутреннее устройство Windows
Скачать Ghidra можно здесь . Поскольку Ghidra написана на Java, она доступна практически для всех платформ, включая Windows, Mac OS и Linux. Для демонстрации Ghidra я буду использовать Windows 10.
Поскольку Ghidra — это приложение Java, для которого требуется JDK 11, убедитесь, что у вас установлена последняя версия JDK, а если нет, загрузите ее с сайта Oracle.
Шаг №2: Запустите Ghidra
После загрузки Ghidra вы можете запустить ее, щелкнув по файлу .bat (что-то вроде старой школы).
Ghidra открывается, демонстрируя этот логотип на короткое время…
…а затем открывает это окно для запуска вашего первого проекта. Проекты похожи на папки и могут содержать несколько файлов, над которыми вы работаете.
Нажмите «Новый проект».
Откроется окно, подобное показанному ниже. Одна из функций Ghidra — возможность совместной работы над файлом или проектом. В этом случае нажмите «Общий проект». Здесь мы будем работать над проектом индивидуально, поэтому нажмите «Необщий проект». Затем нажмите «Далее».
Затем вам будет предложено указать местоположение и имя вашего проекта. В Windows по умолчанию проект будет помещен в каталог C:\User<Name>ghidra. Я буду использовать его. Затем введите имя вашего проекта. В данном случае я назову свой проект «MyFirstGhidraProject».
Далее нам нужно импортировать файл. Это программа или вредоносное ПО, которое вы хотите проанализировать. Выберите «Файл» -> «Импортировать файл».
Выберите файл для анализа. В данном случае я буду анализировать crackme0x00.exe (эти простые файлы crackme доступны по адресу https://github.com/Maijin/radare2-workshop-2015/tree/master/IOLI-crackme ) .
Когда вы выберете файл, Ghidra предоставит вам информацию ниже. Нажмите «ОК».
Затем Ghidra отображает экран, подобный приведенному ниже, с ключевой информацией о файле.
Затем появится этот экран с вашим проектом и импортированным файлом. Вы можете дважды щёлкнуть по файлу или перетащить его на зелёного дракона Гидра над ним.
Затем Ghidra начинает работу. Сначала она отображает ассемблерный язык программы в центральном окне листинга, а затем спрашивает, хотите ли вы проанализировать файл. Нажмите «Да».
Теперь Ghidra проанализирует ваш файл и отобразит информацию, аналогичную четырем окнам ниже.
Вот эти четыре окна:
Окно №1 — это дерево символов
В этом окне можно просмотреть импорт, экспорт, функции, метки, классы и пространства имен двоичного файла.
Окно №2 — это окно листинга
В этом окне отображается разбивка кода на языке ассемблера.
Окно №3 — окно декомпилятора
Декомпилятор позволяет увидеть, как, скорее всего, будет выглядеть язык высокого уровня.
Окно №4 — это окно менеджера типов данных .
Менеджер типов данных позволяет просматривать все определенные типы данных.
Теперь вы готовы приступить к анализу и обратному проектированию этого файла!
Краткое содержание
Реверс-инжиниринг вредоносных программ — один из самых сложных и высокооплачиваемых навыков в области кибербезопасности. Ghidra — отличный инструмент для реверс-инжиниринга, работающий практически на любой платформе и доступный по очень привлекательной цене (бесплатно). В этой серии статей о реверс-инжиниринге мы будем использовать этот инструмент АНБ США для реверс-инжиниринга нескольких вредоносных программ, начиная с самых простых и постепенно переходя к более сложным.