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


S-ICE - часть 102


останова 80386

* Точки останова на диапазоны памяти используют механизм

страничной организации 80386

* Точки останова на команды ввода/вывода используют уровень

привилегий ввода/вывода и битовую маску ввода/вывода

Как выполняется команда BREAK?



Команда BREAK позволяет использовать клавиатуру для вызова Soft-ICE, даже

когда прерывания отключены и система зависла. Soft-ICE виртуализирует

механизм прерываний, так что для Soft-ICE прерывания никогда не отключаются,

даже когда они отключены для программы DOS, выполняющейся в виртуальной

машине.


В режиме BREAK виртуализируются следующие команды, чтобы удостовериться что

флаг прерывания никогда не сбрасывается:


PUSHF

POPF

STI

CLI

INT n

IRET


Специальные соображения о виртуальном режиме 8086


Soft-ICE выполняет DOS в виртуальной машине 8086. Эта возможность - главная

особенность микропроцессора 80386. При выполнении программ реального режима

(DOS и т.д.) в виртуальной машине, программой, контролирующей виртуальную

машину, должны эмулироваться некоторые особенности 8086. В нашем случае

виртуальную машину контролирует Soft-ICE. Soft-ICE поддерживает следующие

особенности:


* Функции прерывания ROM BIOS 15H : 87H, 88H

и 89H

* Недокументированная команда loadall

* Управление Адресной Линией 20H

* Команды защищенного режима 80286 и 80386

* Ошибки 80386


Функции прерывания ROM BIOS 15H : 87H, 88H

и 89H


Функция BIOS 87H позволяет программе обращаться к

памяти выше одного мегабайта на архитектуре IBM AT

или Personal Series II через механизм перемещения блоков.

Функция 88H возвращает размер расширенной памяти.

Эти функции используются драйвером устройства VDISK.

Soft-ICE эмулирует эти вызовы BIOS для совместимости

с VDISK. Функция 89H обычно используется для перехода в

защищенный режим, но Soft-ICE не может позволить

этому случиться. Вместо этого возвращает установленный флаг переноса.


Неописанная команда loadall


80286 содержит неописанную команду, называемую

loadall. Эта команда первоначально помещалась на



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