Добро пожаловать на мой курс по реверс-инжинирингу вредоносных программ!
Этот курс предназначен для тех из вас, кто хочет достичь вершин в области цифровой криминалистики и кибербезопасности.
Существует множество инструментов для реверс-инжиниринга, но один дизассемблер стоит особняком. Практически все в этой отрасли в той или иной степени используют IDA Pro . IDA Pro — это дизассемблер, способный обрабатывать двоичные программы, исходный код которых отсутствует, и создавать карты и различные режимы анализа двоичных файлов. Он берёт исходный код и представляет его в виде ассемблерного кода, что позволяет лучше понять, как работает исходный код. IDA Pro также имеет отладчик, но в этом курсе мы сосредоточимся в основном на его возможностях дизассемблирования.
IDA (Interactive Disassembly) Pro была разработана Ильфаком Гильфановым и теперь продаётся его компанией Hex-Rays из г. Лейж, Бельгия. IDA Pro доступна в версии для Windows (которую мы будем использовать здесь), а также для Linux и MacOS.
Давайте начнем с IDA!
Шаг №1 Загрузка и установка
IDA Pro — коммерческое программное обеспечение, но вы можете скачать бесплатную версию или демо-версию/ознакомительную версию для этого курса. Эти версии имеют некоторые ограничения, такие как:
(1) они будут работать только на платформах x86 и ARM
(2) они будут работать только с форматами PE/ELF/Macho-0
(3) вы не сможете сохранить свои результаты, и они могут быть просрочены
(4) несколько других ограничений.
После загрузки IDA Pro, принятия лицензионного соглашения, установки Python 2.7 и Microsoft Visual C++, IDA Pro будет установлена в вашей системе. Теперь она должна быть в списке программ в меню «Пуск» Windows. Найдите её и нажмите на значок. После этого IDA запустится с экраном, как показано ниже. Нажмите «Создать».
Шаг №2 Загрузка PE-файла
Поскольку мы работаем с демо-версией, мы можем использовать только файлы Portable Executable (PE). Теперь мы можем просто перетащить файл в окно рабочего центра или нажать Файл -> Открыть .
После выбора файла для дизассемблирования и анализа откроется окно, показанное ниже. Как видите, IDA автоматически определила тип файла (переносимый исполняемый файл) и тип процессора (x86). Нажмите «ОК».
Когда IDA начинает разборку и анализ, она анализирует весь файл и помещает информацию в базу данных. Эта база данных состоит из четырёх файлов:
Шаг №3. Начало разборки
В этой лабораторной работе я буду использовать небольшой .exe-файл, входящий в состав сканера веб-уязвимостей Acunetix. Он не является вредоносным ПО, но может стать хорошей демонстрацией для начинающих. Вы можете использовать любой портативный .exe-файл (PE) 32-битной версии, чтобы демо-версия IDA Pro могла его дизассемблировать. После открытия IDA Pro начинает процесс дизассемблирования и отображает информацию, как на скриншоте ниже.
Как видите выше, IDA предоставляет нам базовую информацию на вкладке «Вид IDA». Если прокрутить страницу вниз, можно увидеть каждую строку кода . Именно здесь мы будем выполнять большую часть работы, когда начнём дизассемблирование и анализ вредоносного ПО.
Если щелкнуть правой кнопкой мыши, откроется окно, показанное ниже. Обратите внимание, что в представлении IDA можно выбрать «Текстовый вид» или любой другой вариант. Позже, когда мы начнём анализ в этом курсе, мы установим точки останова в коде (F2).
Цветная полоса над этим представлением IDA отображает объём памяти, занимаемый файлом. Она кодирует цветом различные части программы, хранящиеся в каждой области памяти. Щёлкнув правой кнопкой мыши по любой части полосы памяти, можно увеличить масштаб фрагмента кода, хранящегося в памяти. Масштаб можно увеличить вплоть до
уровня отдельных байтов.
Мы можем просматривать файл с различных ракурсов, выбрав любой из доступных видов. К ним относятся вид IDA (как показано здесь), Hex View, Structures, Enums, Imports и, наконец, Exports. Нажав на любую из этих вкладок, мы получим соответствующее представление кода (см. раздел «Импорт» в шаге 5 ниже).
Одно из самых интересных и познавательных представлений, которые может предоставить IDA, — это блок-схема. Она графически отображает ход выполнения файла, упрощая его понимание. Её можно открыть, перейдя в верхнюю панель меню и выбрав « Вид» -> «Графики» -> «Блок-схема» . Откроется блок-схема кода, аналогичная представленной ниже.
Чтобы получить более подробную информацию, можно увеличить масштаб, перейдя в меню «Вид» в верхней части блок-схемы. Таким образом, мы можем увидеть ход выполнения программы из каждого регистра, подпрограммы и функции.
Шаг 5: Показать импорт
При выборе представления «Импорт» IDA покажет все импортированные .exe-файлом модули. Эти импортированные модули могут дать нам подсказки о происхождении вредоносного ПО.
Шаг 6: Настройте анализ
Наконец, мы можем начать настраивать, что и как IDA будет отображать в коде, перейдя в раздел «Параметры» -> «Общие» . Окно, подобное показанному на снимке экрана ниже, позволит нам настроить наш анализ.
Хотя это далеко не полное и исчерпывающее введение в IDA Pro, мы готовы использовать IDA Pro для анализа вредоносных программ! Я буду знакомить вас с дополнительными концепциями и методами по мере необходимости в ходе курса.
Прежде чем продолжить, я думаю, будет полезно познакомить вас с несколькими ключевыми командами и сочетаниями клавиш в IDA Pro.
Кроме того, вы можете найти полный краткий справочник по IDA Pro, любезно предоставленный хорошими людьми с сайта www.datarescue.com (фирма, изначально занимавшаяся продажами и маркетингом IDA Pro).
Этот курс предназначен для тех из вас, кто хочет достичь вершин в области цифровой криминалистики и кибербезопасности.
Существует множество инструментов для реверс-инжиниринга, но один дизассемблер стоит особняком. Практически все в этой отрасли в той или иной степени используют IDA Pro . IDA Pro — это дизассемблер, способный обрабатывать двоичные программы, исходный код которых отсутствует, и создавать карты и различные режимы анализа двоичных файлов. Он берёт исходный код и представляет его в виде ассемблерного кода, что позволяет лучше понять, как работает исходный код. IDA Pro также имеет отладчик, но в этом курсе мы сосредоточимся в основном на его возможностях дизассемблирования.
IDA (Interactive Disassembly) Pro была разработана Ильфаком Гильфановым и теперь продаётся его компанией Hex-Rays из г. Лейж, Бельгия. IDA Pro доступна в версии для Windows (которую мы будем использовать здесь), а также для Linux и MacOS.
Давайте начнем с IDA!
Шаг №1 Загрузка и установка
IDA Pro — коммерческое программное обеспечение, но вы можете скачать бесплатную версию или демо-версию/ознакомительную версию для этого курса. Эти версии имеют некоторые ограничения, такие как:
(1) они будут работать только на платформах x86 и ARM
(2) они будут работать только с форматами PE/ELF/Macho-0
(3) вы не сможете сохранить свои результаты, и они могут быть просрочены
(4) несколько других ограничений.
После загрузки IDA Pro, принятия лицензионного соглашения, установки Python 2.7 и Microsoft Visual C++, IDA Pro будет установлена в вашей системе. Теперь она должна быть в списке программ в меню «Пуск» Windows. Найдите её и нажмите на значок. После этого IDA запустится с экраном, как показано ниже. Нажмите «Создать».
Шаг №2 Загрузка PE-файла
Поскольку мы работаем с демо-версией, мы можем использовать только файлы Portable Executable (PE). Теперь мы можем просто перетащить файл в окно рабочего центра или нажать Файл -> Открыть .
После выбора файла для дизассемблирования и анализа откроется окно, показанное ниже. Как видите, IDA автоматически определила тип файла (переносимый исполняемый файл) и тип процессора (x86). Нажмите «ОК».
Когда IDA начинает разборку и анализ, она анализирует весь файл и помещает информацию в базу данных. Эта база данных состоит из четырёх файлов:
- .id0 – содержит содержимое базы данных в стиле B-дерева
- .id1 – содержит флаги, описывающие каждый байт программы
- .nam – содержит индексную информацию, относящуюся к именованным расположениям программ
- .til – содержит информацию о локальных определениях типов
Шаг №3. Начало разборки
В этой лабораторной работе я буду использовать небольшой .exe-файл, входящий в состав сканера веб-уязвимостей Acunetix. Он не является вредоносным ПО, но может стать хорошей демонстрацией для начинающих. Вы можете использовать любой портативный .exe-файл (PE) 32-битной версии, чтобы демо-версия IDA Pro могла его дизассемблировать. После открытия IDA Pro начинает процесс дизассемблирования и отображает информацию, как на скриншоте ниже.
Как видите выше, IDA предоставляет нам базовую информацию на вкладке «Вид IDA». Если прокрутить страницу вниз, можно увидеть каждую строку кода . Именно здесь мы будем выполнять большую часть работы, когда начнём дизассемблирование и анализ вредоносного ПО.
Если щелкнуть правой кнопкой мыши, откроется окно, показанное ниже. Обратите внимание, что в представлении IDA можно выбрать «Текстовый вид» или любой другой вариант. Позже, когда мы начнём анализ в этом курсе, мы установим точки останова в коде (F2).
Цветная полоса над этим представлением IDA отображает объём памяти, занимаемый файлом. Она кодирует цветом различные части программы, хранящиеся в каждой области памяти. Щёлкнув правой кнопкой мыши по любой части полосы памяти, можно увеличить масштаб фрагмента кода, хранящегося в памяти. Масштаб можно увеличить вплоть до
уровня отдельных байтов.
Мы можем просматривать файл с различных ракурсов, выбрав любой из доступных видов. К ним относятся вид IDA (как показано здесь), Hex View, Structures, Enums, Imports и, наконец, Exports. Нажав на любую из этих вкладок, мы получим соответствующее представление кода (см. раздел «Импорт» в шаге 5 ниже).
Одно из самых интересных и познавательных представлений, которые может предоставить IDA, — это блок-схема. Она графически отображает ход выполнения файла, упрощая его понимание. Её можно открыть, перейдя в верхнюю панель меню и выбрав « Вид» -> «Графики» -> «Блок-схема» . Откроется блок-схема кода, аналогичная представленной ниже.
Чтобы получить более подробную информацию, можно увеличить масштаб, перейдя в меню «Вид» в верхней части блок-схемы. Таким образом, мы можем увидеть ход выполнения программы из каждого регистра, подпрограммы и функции.
Шаг 5: Показать импорт
При выборе представления «Импорт» IDA покажет все импортированные .exe-файлом модули. Эти импортированные модули могут дать нам подсказки о происхождении вредоносного ПО.
Шаг 6: Настройте анализ
Наконец, мы можем начать настраивать, что и как IDA будет отображать в коде, перейдя в раздел «Параметры» -> «Общие» . Окно, подобное показанному на снимке экрана ниже, позволит нам настроить наш анализ.
Хотя это далеко не полное и исчерпывающее введение в IDA Pro, мы готовы использовать IDA Pro для анализа вредоносных программ! Я буду знакомить вас с дополнительными концепциями и методами по мере необходимости в ходе курса.
Прежде чем продолжить, я думаю, будет полезно познакомить вас с несколькими ключевыми командами и сочетаниями клавиш в IDA Pro.
Кроме того, вы можете найти полный краткий справочник по IDA Pro, любезно предоставленный хорошими людьми с сайта www.datarescue.com (фирма, изначально занимавшаяся продажами и маркетингом IDA Pro).