Учебник хакера


S-ICE - часть 20


- единственный отладчик, с которым он действительно умеет работать.


Нажмите CTRL C, чтобы выйти из программы.

Введите следующие команды:

DEBUG диск:\путь\SAMPLE.EXE

U

R


За часы, которые Jed потратил, пытаясь найти эту неуловимую ошибку, он понял,

что что-то непонятным образом записывается поверх его кода. Jed решает при

помощи Soft-ICE установить точку останова на диапазон его сегмента кода.


Нажмите:

ALT D


Окно Soft-ICE вернулось. Переместите окно (с использованием

CTRL и клавиш стрелок), пока не будет виден экран регистров

DEBUG. Настало время установить нашу первую точку останова.


Введите:

BPR сег. кода:0 сег. кода:25 W


Сег. кода - значение в регистре CS, показываемое

при помощи команды R в DEBUG.


Команда BPR устанавливает точку останова на диапазон памяти. Длина сегмента

кода Jed'а - 25H байт, так что указанный диапазон памяти продолжается от

начала его кода до конца. W сообщает Soft-ICE останавливаться при записи

в этот диапазон. Мы хотим перехватить любую неожиданную запись в код Jed'а.



Введите:

BL



Команда BL покажет все точки останова. Вывод после команды BL

выглядит следующим образом:


0) BPR сег. кода:0000 сег. кода:0025 W C = 01


0 - идентификатор этой точки останова. Диапазон и W

показаны, так как были введены, а счетчик (так как он не был определен)

по умолчанию равен 1.


Теперь настал момент истины.

Нажмите ALT D.


Окно снова исчезает.

Чтобы запустить SAMPLE из DEBUG, введите:

G

Нажмите "пробел". Пока все Ok. Теперь нажмите непробельную

клавишу.


Наша точка останова только что пробудила DEBUG. Выведены регистры и

одна дизассемблированная инструкция.


Введите:

U cs:адрес


Адрес - значение регистра IP минус 10 (шестнадцатеричное). Так как DEBUG

довольно примитивен, значение регистра IP минус 10 должно быть рассчитано

вручную. Указатель инструкции указывает на инструкцию, следующую за той,

которая активизировала точку останова. Возвратом на десять (шестнадцатеричных)

байт мы синхронизируем DEBUG с нужной нам инструкцией.



Начало  Назад  Вперед