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

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

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
В этой серии мы рассмотрим, как проводить обратную разработку вредоносного ПО, чтобы понять, как оно работает, и, возможно, перепрофилировать его. Хакеры и разведывательные агентства, такие как ЦРУ и АНБ , регулярно перепрофилируют вредоносное ПО для других целей.

Ранее мы рассмотрели основы работы с IDA Pro , самым распространённым дизассемблером в нашей отрасли. В этом руководстве мы рассмотрим один из самых распространённых и бесплатных отладчиков — OllyDbg.

OllyDbg — это универсальный отладчик Win32, работающий в пользовательском пространстве. Он имеет простой в использовании и довольно интуитивно понятный графический интерфейс, что позволяет относительно быстро его освоить. Хотя OllyDbg бесплатен, он НЕ имеет открытого исходного кода, поскольку у нас нет доступа к исходному коду. Несмотря на это, OllyDbg имеет чётко определённую архитектуру плагинов, что позволяет разработчикам легко расширять его возможности.

Если вы используете Kali или другой дистрибутив безопасности, он обычно установлен в вашей системе. OllyDbg работает как в Windows, так и в Linux, причём для работы в Linux требуется WINE. Если в вашей системе нет OllyDbg, вы можете скачать его здесь .

Шаг №1: Запуск OllyDbg


Чтобы запустить OllyDbg в Kali, перейдите в «Приложения», затем «Обратное проектирование» и, наконец, ollydbg, как показано на снимке экрана ниже.

6a4a49_f4419edf8d2b4a42b39e4e6a83c016af~mv2.png


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

6a4a49_149797933c5c4718b581551b984124c6~mv2.png


Шаг №2 : Загрузка файла в OllyDbg

Следующий шаг — загрузить исполняемый файл в Ollydbg. Это можно сделать, перетащив файл в рабочую область Olly или перейдя в меню «Файл» в верхней части экрана и выбрав «Открыть». Обратите внимание, что в окне открытия указано, что файл должен быть исполняемым.

6a4a49_71f2e9489e5d42adb92596f6825d8aed~mv2.png


После нажатия кнопки «Открыть» OllyDbg начнёт анализ вашего кода. В данном случае я использовал простой исполняемый файл LaunchU3.exe, предустановленный на моём флеш-накопителе, исключительно для демонстрационных целей. Очевидно, что это НЕ вредоносное ПО. В будущих руководствах мы будем использовать как вредоносное, так и невредоносное ПО для отладки и анализа. Отладчики, такие как OllyDbg, также полезны разработчикам для анализа ошибок (багов) в коде и взлома схем аутентификации, препятствующих пиратству.

Как видите ниже, Олли берёт код и разбивает его на несколько окон. В левом верхнем окне отображаются виртуальные адреса инструкций, в правом верхнем — регистры процессора, в левом нижнем — данные, хранящиеся в памяти, и, наконец, в правом нижнем — стек. Обратите внимание, что в правом нижнем окне, выделенном жёлтым цветом, отображается статус. В данном случае он означает, что мы находимся в состоянии «пауза».

6a4a49_71de853ea8214f698cbc8e4dd9d7f08d~mv2.png


Шаг №3 : Различные взгляды на код

Мы можем просматривать данные в разных режимах, нажимая кнопку «Просмотр» в верхнем меню. Обратите внимание, что каждому режиму соответствует горячая клавиша, которой предшествует клавиша Alt, за исключением «Patches», для которого используется клавиша Ctrl.

6a4a49_75e0934533dc44dca9d7f4c5dd3d7607~mv2.png


Отсюда можно открыть журналы процессов (Alt+L), исполняемые файлы (Alt+E), структуру памяти (Alt+M), окна, дескрипторы и точки останова (Alt+B). Обратите внимание, что каждый из этих элементов также обозначен синими буквами в строке меню в виде ярлыков.

Если выбрать «Исполняемые модули» (Alt+E) или синюю кнопку «E», откроется окно со всеми исполняемыми файлами, как показано ниже. В окне «Исполняемые модули» справа отображается базовый виртуальный адрес, во втором столбце — виртуальный размер исполняемого файла в памяти, в третьем столбце — виртуальный адрес точки входа, в четвёртом столбце — имя модуля, версия файла и путь к файлу для каждого загруженного модуля. Если текст отображается красным цветом, это означает, что модуль был загружен динамически.

6a4a49_97816b3b8b684dccaf90e501bf5a496e~mv2.png


В окне исполняемых файлов можно щелкнуть правой кнопкой мыши и открыть контекстное окно. Здесь можно выполнить ряд действий, но давайте рассмотрим окно «Просмотр имён».



Здесь показаны все функции и импортированные функции, используемые в программе. Открыть это окно можно также сочетанием клавиш Ctrl+N. Анализируя импортированные функции исполняемого файла, мы часто можем определить функциональность вредоносной программы. Сайт документации Microsoft MSDN API (www.MSDN.microsoft.com) может быть полезным ресурсом для изучения того, что делают эти функции, какие параметры они принимают и что возвращают.

6a4a49_6cfdc3866f714d6db5145d55e0bc4e8e~mv2.png


Если в окне «Имена» щелкнуть правой кнопкой мыши по именам функций, можно установить точку останова, нажав «Переключить точку останова» или F2.

6a4a49_c387cab0796e4e3ca55341fb565981ad~mv2.png


В окне «Карта памяти» OllyDbg отображаются виртуальный адрес, виртуальный размер, модуль владельца, имена разделов, тип выделения памяти и защита памяти для каждой выделенной области памяти в процессе.

6a4a49_2ae55b145222485f888cfac93a880e35~mv2.png


В окне потоков OllyDbg отображается идентификатор потока, виртуальный адрес точки входа, виртуальный адрес блока среды потока (TEB), значение последней ошибки, статус (активен или приостановлен), приоритет и информация о времени для каждого потока в процессе.

6a4a49_b45e6cbe4fda4f5bba51c9113e0a5ef7~mv2.png


В окне Windows отображается дескриптор, заголовок, родительское окно, идентификатор окна, стиль окна и информация о классе окна для каждого окна, принадлежащего процессу.

6a4a49_75194ac7b5d847bb8d4ee50a32dd4370~mv2.png


В окне «Дескрипторы» отображается тип объекта, количество ссылок, флаги доступа и имя объекта для каждого дескриптора, принадлежащего процессу.

6a4a49_7e51ef57c19f462f991b189f8f0e28e3~mv2.png


Окно цепочки SEH (Structured Exception Handler) показывает функции структурированного обработчика исключений для текущего потока.

6a4a49_081853fcc1b148faa19a38aef1f8ed0b~mv2.png


Точки останова

Одна из ключевых функций любого отладчика — возможность устанавливать точки останова. Точка останова позволяет остановить выполнение программы по указанному адресу или инструкции. Существует два основных типа точек останова: (1) программные и (2) аппаратные. OllyDbg позволяет просматривать, включать и выключать точки останова через окно точек останова, вызываемое сочетанием клавиш Alt+B.

6a4a49_1e2eb5985dd14e958ada2efcf3eca0a1~mv2.png


Часто используемые сочетания клавиш OllyDbg

пользовательский интерфейс


Открыть новую программу F3

Закрыть программу Alt+F2

Развернуть/восстановить активные окна F5

Сделать окно OllyDbg самым верхним (Alt+F5)

Закрыть OllyDbg Alt+X

Окна

Открыть окно точек останова Alt+B

Открыть окно ЦП Alt+C

Открыть окно модулей Alt+E

Открыть окно журнала Alt+L

Открыть окно памяти Alt+M

Редактирование

Добавить метку: (двоеточие)

Добавить комментарий ; (Точка с запятой)

Редактировать память Ctrl+

Собрать пространство

Отменить изменения Alt+BkSp

Исполнение

Шаг в F7

Анимировать в Ctrl+F7

Перешагнуть F8

Анимация с помощью Ctrl+F8

Запустить приложение F9

Передайте обработчик исключений и выполните Shift+F9

Выполнять до возврата Ctrl+F9

Выполнить до кода пользователя Alt+F9

Трассировка в Ctrl+F11

Трассировка по Ctrl+F12

Пауза F12

Приостановить трассировку условно Ctrl+T

Выполнить выбор F4

Точки останова

Установить/снять точку останова F2

Установить/редактировать условную точку останова Shift+F2

Установить/редактировать условную точку останова журнала Shift+F4

Временно отключить/восстановить BP Space

Данные

Анализ исполняемого кода Ctrl+A

Сканировать файлы объектов Ctrl+O

Отображать символические имена Ctrl+N

Идет поиск

Найти выбранные внешние ссылки адреса Ctrl+R

Найти переходы на строку Ctrl+J

Поиск последовательности Ctrl+S

Поиск выделенной памяти Ctrl+L

Поиск двоичного кода Ctrl+B

Поиск команды Ctrl+F

Повторить последний поиск Ctrl+L

Навигация

Перейти к источнику * (звездочка)

Перейти к адресу выражения Ctrl+G

Перейти к предыдущему адресу – (Минус)

Перейти к следующему адресу + (Плюс)

Перейти к предыдущей процедуре Ctrl+-

Перейти к следующей процедуре Ctrl++

Перейти к предыдущей ссылке Alt+F7

Перейти к следующей ссылке Alt+F8

Следовать выражению Ctrl+G

Следуйте, перейдите или позвоните Enter

Просмотреть дерево вызовов Ctrl+K

Разнообразный

Контекстная справка Ctrl+F

Полный список сочетаний клавиш

Ниже приведен полный список сочетаний клавиш OllyDbg с официального сайта OllyDbg www.ollydbg.de.

Функции

6a4a49_0847942011444644bad4246829c72fd1~mv2.png


Глобальные сочетания клавиш

6a4a49_f291ad9be17244d096a2c117b164ef78~mv2.png


Теперь, когда мы продемонстрировали два основных инструмента: IDA Pro и OllyDbg, а также познакомили вас с основами ассемблера и внутренним устройством Windows, настало время приступить к борьбе с вредоносным ПО!
 
Всё понятно и подробно объяснено, хороший материал для тех, кто хочет научиться работать с OllyDbg и разбирать программы
 
Назад
Сверху Снизу