Запуск отлачика OllyDBG ⇐ ПредыдущаяСтр 2 из 2
Для запуска отладчика 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 Все права принадлежат авторам размещенных материалов.
|