Учебник хакера
Наши юристы оказывают услугу представительства в гражданском суде

BPM Установка точки останова на


ПРИЛОЖЕНИЕ A

ФУНКЦИОНАЛЬНЫЙ СПИСОК КОМАНД

Команда Описание

Установка точек останова:

BPM Установка точки останова на доступ к памяти или

выполнение

BPR Установка точки останова на диапазон памяти

BPIO Установка точки останова на доступ к порту ввода/вывода

BPINT Установка точку останова на прерывание

BPX Установка/отмена точки останова на выполнение

CSIP Установка спецификатора диапазона CS:IP

BPAND Ожидание срабатывания многих точек останова

Управление точками останова:



BD Отключение точек останова

BE Активизация точек останова

BL Вывод списка точек останова

BPE Редактирование точек останова

BPT Использование точки останова как шаблона

BC Удаление точек останова

Команды вывода и редактирования:

U Дизассемблировать инструкции

R Вывести или изменить регистры

MAP Вывести карту памяти системы

D Вывести память

E Редактировать память

INT? Вывести номер последнего прерывания

? или H Вывести справочную информацию

VER Вывести номер версии Soft-ICE

Команды работы с портами ввода/вывода:

I Ввод из порта ввода/вывода

O Вывод в порт ввода/вывода

Команды передачи управления:

X Выйти из окна Soft-ICE

G Перейти по адресу

T Протрассировать одну команду

P Программный шаг

HERE Выполнить до текущей строки курсора

G Перейти по адресу

GENINT Вызывает прерывание

EXIT Вызывает выход из текущей программы DOS

BOOT Перезагрузить систему (сохранив Soft-ICE)

HBOOT Выполнить жесткую перезагрузку системы (полный сброс)

Команды режима отладки:

ACTION Установить действие после достижения точки останова

WARN Установите режим предупреждения при повторной входимости

DOS/ROM BIOS

BREAK Прерывание исполнения в любое время

I3HERE Перенаправить прерывание 3 на Soft-ICE

Сервисные команды:

A Транслировать код

S Поиск данных

F Заполнить память данными

M Переместить данные

C Сравнить два блока данных

Специализированные команды отладки:

SHOW Вывести команды из буфера истории

TRACE Войти в режим эмуляции трассировки

XT Одиночный шаг в режиме эмуляции трассировки



XP Программный шаг в режиме эмуляции трассировки

XG Перейти по адресу в режиме эмуляции трассировки

XRSET Сбросить буфер обратной трассировки

VECS Сохранить/восстановить/сравнить векторы прерываний

SNAP Сохранить содержимое блока памяти

EMMMAP Вывести карту распределения EMM-памяти

Команды работы с окнами:

WR Включить/выключить окно регистров

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

WD Включить/выключить/установить размер окна данных

EC Перейти/выйти из окна кода

. Найти текущую команду

Команды Настройки Отладчика:

PAUSE Пауза после каждого экрана при просмотре

ALTKEY Установить альтернативную комбинацию клавиш

для вызова Soft-ICE

FKEY Вывести и редактировать функциональные клавиши

BASE Установить/вывести текущее основание системы счисления

CTRL-P Переключить сохранение лога сеанса на принтер

Print-Screen Печать содержимого экрана

PRN Установить порт вывода на принтер

Команды управления экраном:

FLASH Восстанавливать экран во время P и T

FLICK Предотвращение "снега"

WATCHV Установить слежение за видеорежимом

RS Восстановить экран программы

CLS Очистить окно

ALTSCR Перейти на альтернативный экран

WIN Изменить размер окна Soft-ICE

Команды работы с символами и исходными строками:

SYM Установить/вывести символ

SYMLOC Переместить базу символов

SRC Переключиться между режимом исходного текста, смешанным

и режимом кода

FILE Изменить/вывести текущий файл с исходным текстом

SS Искать строку в текущем файле с исходным текстом

ПРИЛОЖЕНИЕ B

АЛФАВИТНЫЙ СПИСОК КОМАНД

Команда Описание

. Найти текущую команду

? или H Вывести справочную информацию

A Транслировать код

ACTION Установить действие после достижения точки останова

ALTKEY Установить альтернативную комбинацию клавиш

для вызова Soft-ICE

ALTSCR Перейти на альтернативный экран

BASE Установить/вывести текущее основание системы счисления

BC Удаление точек останова

BD Отключение точек останова

BE Активизация точек останова

BL Вывод списка точек останова



BOOT Перезагрузить систему (сохранив Soft-ICE)

BPAND Ожидание срабатывания многих точек останова

BPE Редактирование точек останова

BPINT Установка точку останова на прерывание

BPIO Установка точки останова на доступ к порту ввода/вывода

BPM Установка точки останова на доступ к памяти или

выполнение

BPR Установка точки останова на диапазон памяти

BPT Использование точки останова как шаблона

BPX Установка/отмена точки останова на выполнение

BREAK Прерывание исполнения в любое время

C Сравнить два блока данных

CLS Очистить окно

CSIP Установка спецификатора диапазона CS:IP

CTRL-P Переключить сохранение лога сеанса на принтер

D Вывести память

E Редактировать память

EC Перейти/выйти из окна кода

EMMMAP Вывести карту распределения EMM-памяти

EXIT Вызывает выход из текущей программы DOS

F Заполнить память данными

FILE Изменить/вывести текущий файл с исходным текстом

FKEY Вывести и редактировать функциональные клавиши

FLASH Восстанавливать экран во время P и T

FLICK Предотвращение "снега"

G Перейти по адресу

GENINT Вызывает прерывание

HBOOT Выполнить жесткую перезагрузку системы (полный сброс)

HERE Выполнить до текущей строки курсора

I Ввод из порта ввода/вывода

I3HERE Перенаправить прерывание 3 на Soft-ICE

INT? Вывести номер последнего прерывания

M Переместить данные

MAP Вывести карту памяти системы

O Вывод в порт ввода/вывода

P Программный шаг

PAUSE Пауза после каждого экрана при просмотре

Print-Screen Печать содержимого экрана

PRN Установить порт вывода на принтер

R Вывести или изменить регистры

RS Восстановить экран программы

S Поиск данных

SHOW Вывести команды из буфера истории

SNAP Сохранить содержимое блока памяти

SRC Переключиться между режимом исходного текста, смешанным

и режимом кода

SS Искать строку в текущем файле с исходным текстом

SYM Установить/вывести символ

SYMLOC Переместить базу символов

T Протрассировать одну команду

TRACE Войти в режим эмуляции трассировки

U Дизассемблировать инструкции

VECS Сохранить/восстановить/сравнить векторы прерываний



VER Вывести номер версии Soft-ICE

WARN Установите режим предупреждения при повторной входимости

DOS/ROM BIOS

WATCHV Установить слежение за видеорежимом

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

WD Включить/выключить/установить размер окна данных

WIN Изменить размер окна Soft-ICE

WR Включить/выключить окно регистров

X Выйти из окна Soft-ICE

XG Перейти по адресу в режиме эмуляции трассировки

XP Программный шаг в режиме эмуляции трассировки

XRSET Сбросить буфер обратной трассировки

XT Одиночный шаг в режиме эмуляции трассировки

ПРИЛОЖЕНИЕ C

ФУНКЦИОНАЛЬНЫЙ СПИСОК КЛАВИШ

Клавиша Описание

Перемещение окна Soft-ICE:

CTRL Переместить окно на строку вверх

CTRL Переместить окно на строку вниз

CTRL Переместить окно на одну позицию вправо

CTRL Переместить окно на одну позицию влево

Изменение Размеров окна Soft-ICE:

ALT Расширить окно

CTRL Сузить окно

Редактирование Командной Строки:

Переместить курсор вправо

Переместить курсор влево

INS Включить/выключить режим вставки

DEL Удалить текущий символ

HOME Переместить курсор на начало строки

END Переместить курсор к концу строки

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

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

SHIFT Прокрутить на одну строку вверх

SHIFT Прокрутить на одну строку вниз

PAGE UP Прокрутить на одну страницу вверх

PAGE DN Прокрутить на одну страницу вниз

BKSP Удалить предыдущий символ

ESC Отменить текущую команду

ПРИЛОЖЕНИЕ D

Сообщения об Ошибках и их Описания

В этом приложении указаны и объяснены сообщения об ошибках, которые может

выдавать Soft-ICE.

A General Protection Violation Has

Occurred. This is typically caused

by a protected mode instruction.

CS:IP = XXXX:XXXX

Type 'C' to Continue

Type 'R' to Return to Soft-ICE.

Это сообщение может появиться, либо когда обнаружена

инструкция защищенного режима 80386 либо в

условиях выхода за пределы сегмента. Часто можно

определить причину этого сообщения,

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

Если первый байт команды - 0FH, тогда вероятно это -



команда защищенного режима. Если команда

обращается к слову по смещению 0FFFFH в сегменте,

тогда это - проблема выхода за сегмент. Если вы введете

"C", чтобы продолжить, управление перейдет обработчику 0

прерывания в виртуальной машине DOS.

Это сообщение часто появляется, когда программа переходит к

адресу, который не содержит допустимого кода или когда

допустимый код был перезаписан.

Attempt To Divide By 0

Это сообщение появляется, когда Soft-ICE вычисляет значение

выражения и делитель в операции деления - нуль.

BPM Break Point Limit Exceeded

Soft-ICE предоставляет максимум 4 точки останова на память.

Это сообщение выводится, если пытаетесь превысить максимальное

ограничение.

Break Point Table Full

Soft-ICE предоставляет максимум 16 точек останова. Это сообщение

выводится, если вы пытаетесь превысить максимальное ограничение.

Count Too Large

Команды точек останова Soft-ICE содержат необязательное

поле счетчика. Максимальным значением этого поля может быть

FFH. Это сообщение об ошибке выводится, если указанное значение

счетчика больше чем FFH.

DOS Memory Structures Corrupted

Это сообщение выводится, если Soft-ICE обнаруживает проблему

с цепочкой блоков памяти DOS при использовании команды

MAP. Это сообщение также может появиться, если вы используете

команду MAP с операционной системой, отличной от DOS.

Duplicate Break Point

При вводе точки останова Soft-ICE сравнивает

условия точки останова с аналогичными у точек останова

установленных ранее. Если условия совпадают,

выводится это сообщение.

Interrupt Break Point Limit Exceeded

Soft-ICE предоставляет максимум 10 точек останова на

прерывание. Это сообщение выводится, если вы пытаетесь

превысить максимальное ограничение.

Invalid Opcode Has Occurred

CS:IP =XXXX:XXXX

Type 'C' to Continue

Type 'R' to Return to Soft-ICE.

Когда 80386 сталкивается с командой, которая является

запрещенной, он генерирует прерывание 6. Soft-ICE выводит

это сообщение и дает вам возможность продолжить или



вернуться в Soft-ICE. Если вы введете "C", чтобы продолжить,

управление передается обработчику прерыванию 6 в

виртуальной машине DOS.

Это сообщение часто появляется, когда программа переходит

к адресу, который не содержит допустимого кода или когда

допустимый код был перезаписан.

I/O Break Point Limit Exceeded

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

Это сообщение выводится, если вы пытаетесь превысить максимальное

ограничение.

No Alternate Screen

Это сообщение выводится, если используется команда

ALTSCR и Soft-ICE обнаруживает только один видеоадаптер.

Parameter is Wrong Size

Определенные поля требуют специфического размера типа данных (байт,

слово или двойное слово ). Это сообщение выводится, если

превышен размер типа данных. Для примера, если вы используете

команду 'BPMB 2000:2000 EQ 1234', вы просите Soft-ICE

обнаружить байтовый доступ к ячейке 2000:2000 со

значением 1234H. Так как 1234H больше чем байт,

команда вызовет появление этого сообщения об ошибке.

Parameters Required

Большинство команд Soft-ICE требуют одного или

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

требуемого числа параметров, выводится это

сообщение.

Range Break Point Limit Exceeded

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

памяти. Это сообщение выводится, если вы пытаетесь превысить

максимальное ограничение.

Second Parameter Must Be Greater than First

При определении диапазона памяти, первое введенное

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

будет выведено это сообщение.

Segment:Offset Can Not Wrap

Большинство команд Soft-ICE не позволяют указателю

памяти (сегмент:смещение) переходить границу между высокой и

низкой памятью. Например, указатель памяти FFFF:FFFF переходит

границу и запрещен. Это сообщение выводится если вы делаете

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

Soft-ICE cannot be loaded.

Needs to load at top of memory.

Load before any TSR's or control programs.



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

область памяти. Затем эта память "вырезается",

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

разрушить Soft-ICE. Это сообщение выводится, если Soft-ICE

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

часть памяти.

Soft-ICE cannot run with other 80386 control programs

80386 поддерживает только одну программу защищенного режима,

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

программами. При отладке программы, использующей EMS

и EEMS, вы можете получить это сообщение об ошибке, когда вы

попробуете загрузить Soft-ICE, потому что некоторые системы 80386

продаются с управляющей программой, которая использует систему

страничной организации памяти 80386, чтобы дать вам EMS и EEMS

на плате, где есть только расширенная память. Однако, для отладки

программ, использующих EMS и EEMS, вы можете использовать плату с

настоящей отображаемой памятью.

Soft-ICE has already been loaded

Это сообщение происходит если вы повторно пытаетесь загрузить

Soft-ICE.

Soft-ICE has not been loaded

Это сообщение появляется, если вы пытаетесь выгрузить Soft-ICE,

когда он еще не загружен.

Soft-ICE loads at the top of extended memory. This may conflict with other

programs that use extended memory. If you are sure it will not conflict,

then answer 'Y', otherwise answer 'N' and refer to the chapter on loading

Soft-ICE with extended memory.

Это сообщение появляется, если вы пытаетесь загрузить Soft-ICE

в расширенную память, и S-ICE.SYS не был загружен в вашем

файле CONFIG.SYS. Это предупреждение выдается, чтобы

удостовериться, что вы не сотрете случайно виртуальный

диск или другую программу, которая может загрузиться в

расширенную память. Для большей информации обратитесь к

части 2.2, "Загрузка Soft-ICE" и главе 6,

"Опции Инициализации".

Soft-ICE will only run on 80386 based machines

Soft-ICE требует микропроцессор Intel 80386.

Syntax Error



Это сообщение выводится, если введенная

информация не удовлетворяет структуре ни одной

команды Soft-ICE.

The P & G Commands Function In RAM Only

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

P и G. Первый метод использует регистры точек

останова 80386. Однако, если вы уже установили 4

точки останова стиля BPM, Soft-ICE использует метод

INT 3, который будет работать только в ОЗУ. Если вы

в этом случае пытаетесь использовать команды P или G

в ROM, Soft-ICE обнаруживает эту ситуацию и выводит

это сообщение об ошибке.

Valid Verbs are R, W, RW, X

Это сообщение выводится, если в команде BPM указывается

недопустимая опция. При использовании команды BPM

допустимые выборы для опций - R(чтение), W (запись),

RW (чтение/запись), и X (выполнение).

ПРИЛОЖЕНИЕ E

РУКОВОДСТВО ПО ПОИСКУ НЕИСПРАВНОСТЕЙ

В этом приложении даны решения для некоторых возможных проблем, с которыми вы

можете столкнуться при использовании Soft-ICE. Если вы не найдете проблему

здесь, проверьте файл README.SI на вашей дистрибутивной дискете для любых

приемов по поиску неисправностей, которые не указаны в этом руководстве.

Команда time в конце дня не показывает правильное время.

Когда окно Soft-ICE активно, Soft-ICE не позволяет ни одному

прерываниям пройти к системе. Это никак не воздействует на

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

перезагрузитесь, время будет снова отображаться правильно.

Вы также можете исправлять время, запуская программу UPTIME.

Она получает время из часов реального времени и вызывает

DOS, чтобы установить время.

При отладке программы, которая использует EMS и EEMS, вы получаете это

сообщение об ошибке, когда вы пробуете загрузить Soft-ICE "Soft-ICE

cannot run with other 80386 control programs".

Некоторые системы 80386 продаются с управляющей программой, которая

использует систему страничной организации памяти 80386, чтобы дать

вам EMS и EEMS на плате, где есть только расширенная память.

80386 поддерживает только одну программу защищенного режима,



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

программами. Однако, для отладки программ, использующих EMS и EEMS,

вы можете использовать плату с настоящей отображаемой памятью.

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

Некоторые программные отладчики реагируют на останов, только когда

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

команде ACTION в части 5.4. Там указаны три различных типа

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

когда срабатывает точка останова. Попробуйте все три. Какие-то действия

работают лучше для различных отладчиков.

Soft-ICE не появляется, когда ваш монитор находится в графическом режиме или

он неправильно восстанавливает ваш графический экран.

Soft-ICE не использует ROM BIOS для вывода,

он должен идти прямо на аппаратные средства. Soft-ICE был

разработан, чтобы работать со следующими типами

контроллеров или 100 % совместимыми с ними:

CGA

MDA

Hercules

EGA

VGA

Если ваш контроллер - не один из их или не 100 %

совместимый, вы может использовать второй контроллер

и монитор и использовать команду ALTSCR описанную в

части 5.9.

Комбинация клавиш, используемая для вызова Soft-ICE находится в противоречии

с существующей программой, которую вы запускаете.

Вы можете установить другую комбинация клавиш для

вызова Soft-ICE, используя команду ALTKEY. Если это

не помогло, добавьте к текущей комбинации клавиш

клавишу SHIFT и используйте эту новую комбинацию

клавиш, чтобы вызывать существующую программу.

Soft-ICE не будет реагировать на новую комбинацию

клавиш и позволит ей пройти к существующей программе.

Обратитесь к команде ALTKEY в части 5.8.

Soft-ICE не вызывается при сбое вашей программы.

Обратитесь к команде BREAK в части 5.4. Эта

команда позволяет вам вызвать окно Soft-ICE,

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

После того, как точка останова вызывает ваш отладчик, ваш отладчик перестает

отвечать.

Есть две возможных причины, по которым могла возникнуть



эта проблема:

1) Ваш отладчик вызвал повторный вход в DOS или ROM

BIOS. DOS и ROM BIOS не полностью реентерабельны,

так что ваш отладчик может работать неправильно.

Используйте команду WARN, чтобы включать режим

предупреждения повторной входимости. В следующий

раз при попытке повторного входа в DOS или ROM BIOS,

будет выдано предупреждающее сообщение и у вас будет

выбор вернуться в Soft-ICE, чтобы избежать проблемы.

Обратитесь к команде WARN в части 5.4.

2) Останов произошел посередине программы-обработчика

прерывания. Некоторые отладчики не могут справиться

с такими ситуациями. Используйте ACTION, установленное

на HERE, потому что Soft-ICE позволяет вам прерывать

выполнение посередине подпрограммы прерывания.

Обратитесь к команде ACTION в части 5.4.

Вы используете монитор CGA и, когда вызывается Soft-ICE, у вас на экране

появляется "снег".

Некоторые типы видеоплат будут генерировать нежелательное мерцание,

если символы выводятся без ожидания горизонтального или вертикального

обратного хода луча. Чтобы убрать "снег", включите режим FLICK.

Обратитесь к команде FLICK в части 5.9.

При выполнении команды BOOT система начинает перезагрузку, но потом зависает.

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

Есть два возможных случая, когда этот метод может потерпеть

неудачу:

1) На чисто загруженной системе этот метод будет прекрасно

работать. Но если система разрушена содержащей ошибки

программой, есть вероятность, что этот метод не будет

работать.

2) Некоторые программы, использующие расширенную или

отображаемую память типа EMS-драйверов или дисковых

КЭШей, не способны поддерживать перезагрузку стиля

прерывания 19. При отладке драйверов устройств и программ

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

следующий метод. Загрузите систему без драйверов, которые

вызывают проблему; загрузите Soft-ICE; установите драйверы,

чтобы они загрузились при следующей перезагрузке; и затем

используйте команду BOOT.


Обратитесь к команде

BOOT в части 5.3.

Вы использовали комбинация клавиш SYSREQ, чтобы вызвать Soft-ICE, и ваша

система зависает или начинается на сброс содержимого экрана на ваш

принтер.

На некоторых клавиатурах, чтобы сгенерировать системный

запрос, вы должны одновременно нажать клавишу ALT и

клавишу PrtSc. Если вы случайно нажмете только клавишу

PrtSc, система попытается распечатать ваш экран. Если

принтер не подсоединен, ваша система зависнет. Чтобы

избежать этой проблемы, тщательно следите за тем, чтобы

нажать обе клавиши одновременно, или используйте команду

ALTKEY чтобы перейти на другую комбинацию клавиш.

Обратитесь к команде ALTKEY в разделе 5.8.

Ваш отладчик завис, когда вы дизассемблировали команды или редактировали

или выводили на экран содержимое памяти.

Вы обратились к адресу, который активизировал точку

останова Soft-ICE, и ACTION не было установлено на HERE.

Когда Soft-ICE доставит вас к месту, где вы хотите

поработать в памяти с вашим отладчиком, вы должны

отключить точки останова Soft-ICE. Если вы этого не

сделаете, вы можете случайно вызвать останов. Это

заставит ваш отладчик вызвать самому себя, что может

быть фатальной проблемой для отладчиков, не являющихся

реентерабельными.

После того, как вы вышли из вашего отладчика, система зависла.

У этой проблемы, конечно, может быть много причин, но

одной из возможных причин может быть то, что вы могли

забыть отключить точки останова Soft-ICE, и ACTION еще

установлено на вызов вашего отладчика. Когда срабатывает

точка останова, ACTION попытается вызвать ваш отладчик,

но ваш отладчик уже не загружен.

Вы установили точку останова для перехвата функций 87H,

88H или 89H прерывания 15H, а останов не происходит.

Soft-ICE производит внутреннюю обработку этих функций в

защищенном режиме, так что вы не можете устанавливать

точки останова на эти функции.

Ваша программа не реагирует на нажатия клавиш, но клавиатура еще активна.

Могла быть логически нажата клавиша SHIFT.


Попробуйте

понажимать и отпускать каждую клавишу SHIFT, CTRL и ALT.

Soft-ICE некорректно восстанавливает ваш графический экран.

У Soft-ICE есть улучшенный режим виртуализации видео,

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

графических режимов. Включите этот режим, введя WATCHV ON.

См. описание команды WATCHV для больших подробностей.

Для несовместимых видеоконтроллеров и определенных

неизвестных режимов вам может быть придется использовать

альтернативный монитор. См. команду ALTSCR.

Машина блокируется, когда вы находитесь в Soft-ICE или перемещаете окно

Soft-ICE.

У Soft-ICE на некоторых клавиатурах есть проблемы

с таймером. Используйте выражение NOLEDS в S-ICE.DAT.

Это предотвратит посылку Soft-ICE'ом на клавиатур

команд LED.




Содержание раздела