Здавалка
Главная | Обратная связь

Запуск отлачика OllyDBG



Для запуска отладчика OllyDBG необходимо на диск С скопировать папку OllyDBG. Если папка OllyDBG находится в другой дерективе, необходимо поправить файл tasm.ini.

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

следующие пункты меню:

• трансляцию Создать/Assemble,

• компоновку Создать/Link,

• запуск на выполнение в отладчике Создать/Run w/Debug.

После запуска на экране появляется окно отладчика OllyDBG (см. рис).

Рисунок – Окно OllyDBG

В окне можно выделить четыре области:

• дочернее окно CPU – окно процессора, в котором высвечиваются адреса команд, их шестнадцатеричные коды, результаты дисассемблирования и результаты выделения параметров процедур;

• область Registers – окно содержимого регистров процессора,

• окно данных, в котором высвечиваются адреса памяти (Address) и ее шестнадца-

теричный (Hex dump) и символьный (ASCII) дампы;

• окно стека, в котором показывается содержимое вершины стека.

 

В исходный момент времени курсор находится в окне CPU, т.е. программа готова к выполнению. Для выполнения команды отладчика используют следующие комбинации клавиш:

F7 – выполнить шаг с заходом в тело процедуры;

F8 – выполнить шаг, не заходя в тело процедуры.

Адрес начала программы 00401000h. К сожалению, отладчик не всегда правильно дисассемблирует двоичный код программы, и какие-то команды могут остаться не распознанными. Так на рисунке 4 видно, что команда mov X,EAX оказалась не распознанной.

Вместо нее в отладчике указан код, соответствующий определению данных: DB A3 и т.д.

Однако выполнение программы будет осуществляться правильно. Адрес начала раздела инициированных данных – 00403000h. Каждое значение занимает столько байт, сколько резервируется директивой. В отладчике каждый байт представлен двумя шестнадцатеричными цифрами. Кроме того, используется обратный порядок байт, т.е. младший байт числа находится в младших адресах памяти (перед старшим). Если шестнадцатеричная комбинация соответствует коду символа, то он высвечивается в следующем столбце (ASCII), иначе в нем высвечивается точка. Не инициированные данные располагаются после инициированных с адреса, кратного 16.

При каждом выполнении команды мы можем наблюдать изменение данных в памяти и/или в регистрах, отслеживая процесс выполнения программы и контролируя правильность промежуточных результатов.

Так после выполнения первой команды число A копируется в регистр EAX, который при этом подсвечивается красным. При записи в регистр порядок байт меняется на прямой, при котором первым записан старший байт.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.