Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Взлом ПО.docx
Скачиваний:
116
Добавлен:
23.11.2018
Размер:
3.85 Mб
Скачать

Литература для дополнительного изучения

  1. Ассемблер на примерах. Владислав Пирогов, 2005 г.

  2. Язык ассемблера для процессора Intel. Ирвин.

  3. Статьи с сайта: http://wasm.ru/publist.php

  4. Ассемблер для Windows. Владислав Пирогов, 2007 г.

Приложение 2. Отладчик OllyDbg

Автор: Oleh Yuschuk.

Отладчик уровня приложений (ring-3).

Откуда скачать программу

Первая версия OllyDbg (внутри архива есть расширения-плагины, увеличивающие функциональность): http://www.ollydbg.de/odbg110.zip

2.0 версия (внутри архива есть подробный help по работе со второй версией программы): http://www.ollydbg.de/odbg200.zip

2.01 версия: http://ollydbg.de/odbg201d.zip

Установка и интерфейс первой и второй версии программ сильно не отличаются. Рассмотрим интерфейс версии 2.01, а в завершении – настройку плагинов для первой версии (поддержка плагинов во второй версии появилась в августе 2011 года). Также для первой версии будет рассмотрен этап сохранения исполняемого файла.

Установка и настройка программы

Распакуем скачанный архив, например, на диск С: в папку OllyDbg.

Рис. Список файлов для отладчика OllyDbg

Нам понадобится исполняемый файл OLLYDBG.EXE (для запуска могут потребоваться административные права).

Рис. Главное окно программы OllyDbg

Откроем исследуемый файл CRACKME1.EXE.

Рис. Меню открытия исследуемого файла

Рис. Главное окно отладчика OllyDbg

Рассмотрим основное рабочее пространство отладчика.

Рис. Рабочее пространство отладчика OllyDbg

  1. Дизассемблированный код (листинг)

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

  • Колонка адреса команды (Address). В данной колонке показан виртуальный адрес команды, который она получает при загрузке модуля в память. Двойной щелчок мышью в данной колонке переводит все адреса в смещения относительно текущего адреса ($, $-2 и т.п.)

  • Колонка кода команды (Hex). Выделяются код и значение операнда. Кроме этого в колонке имеются различные значки, которые помогают разобраться в логике программы.

  • Колонка команды (Disassembly). В этой колонке представлено ассемблерное обозначение команды. Двойной щелчок привод к появлению окна редактирования, в котором можно исправить команду.

Рис. Окно редактирование ассемблерной команды

Можно записать исправленный текст команды в исполняемый модуль, например, в первой версии (!) следующим образом. Правой кнопкой мыши переходим в контекстной меню окна дизассемблера.

Рис. Выбор из контекстного меню окна дизассемблерного кода пункт копирования кода

В появившемся окне снова переходим в контекстное меню.

Рис. Выбор из контекстного меню пункта сохранения текущей версии в файл

  • Колонка комментария (Comment). Дополнительная информация: имена API-функций, библиотечных функций и т.д. Двойной щелчок позволяет добавлять свои комментарии.

Рис. Окно добавления комментария

Дополнительной опцией можно включить подсветку JUMP (переходов) и CALL (вызовов). Кликните на листинге правой кнопкой мыши и выберите «APPEARENCE -> HIGHLIGHTING -> JUMPS AND CALLS».

Рис. Выбор дополнительной опции подсветки переходов

Увидим, что call’ы подсвечены лазурным цветом, а переходы – жёлтым.