Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Руководство по Soft-ICE (DOS) - 10
Фирме требуется хакер, жeлательно со знанием компьютера.

Синтаксис:


< ? | H > [команда | выражение]

Комментарии:

И команда ? и команда H выводят справочную информацию.

Если параметры не определены, система помощи выдает короткие описания всех команд и операторов, по одному экрану за раз. Нажмите любую клавишу для продолжения или нажмите ESC, чтобы выйти из выводимой справки.

Если указана команда, справка выводит более детальную информацию относительно указанной команды, включая синтаксис команды и пример.

Если указано выражение, выражение вычисляется и результат выводится в шестнадцатеричном, десятичном и ASCII-представлении.

Примеры:


? ALTKEY

Эта команда отображает информацию о команде ALTKEY, включая синтаксис и пример.


H 10 + 14*2

Эта команда выводит: 0038 00056 "8". Это - шестнадцатеричное, десятичное и ASCII-представления значения выражения "10 + 14*2".

VER

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

Синтаксис:


VER

Пример:


VER

Эта команда выводит версию Soft-ICE и сообщение об авторских правах Nu-Mega Technologies.

5.2 Команды Портов ввода/вывода

Команды:

I или IB -- Ввод из байтового порта ввода/вывода
IW -- Ввод из порта ввода/вывода с размерностью в слово
O или OB -- Вывод в байтовый порт ввода/вывода
OW -- Вывод в порт ввода/вывода с размерностью в слово

I, IB, IW

I, IB, IW -- Ввод из порта ввода/вывода

Синтаксис:


I [размерность] порт

размерность -- B -- Байт W -- Слово
порт -- байт или слово

Комментарии:

Команды ввода из порта используются для чтения и отображения значений из аппаратного порта. Ввод может выполняться из портов с размерностью слово или байт. Если размер не определен, то значение по умолчанию - байт.

Пример:


I 21

Эта команда отображает регистр маски первого контроллера прерываний.

O, OB, OW

O, OB, OW, -- Вывод в порт ввода/вывода

Синтаксис:


O [размерность] порт значение

размерность -- B -- Байт W -- Слово
порт -- байт или слово
значение -- байт для байтового порта или слово для порта размерностью в слово

Комментарии:

Команды вывода в порт используются для записи значения в аппаратный порт. Вывод может выполняться в порты размерностью байт или слово, если размер не определен, то значение по умолчанию - байт.

Пример:


O 21 FF

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

5.3 Команды Передачи Управления

Команды:

X -- Выйти из окна Soft-ICE
G -- Перейти по адресу
T -- Протрассировать одну команду
P -- Программный шаг
HERE -- Исполнение программы до строки, в которой находится курсор
GENINT -- Вызов прерывания
EXIT -- Вызывает выход из текущей программы DOS'а
BOOT -- Перезагрузка системы (с сохранением Soft-ICE)
HBOOT -- Жесткая перезагрузка системы (общий сброс)

X

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

Синтаксис:


X

Комментарии:

Команда X производит выход из окна Soft-ICE и возвращает управление программе, которая была прервана при вызове Soft-ICE. Окно Soft-ICE исчезает. Если до этого были установлены точки останова, они станут активными.

Пример:


X

G

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

Синтаксис:


G [=адрес-начала] [адрес-останова]

Комментарии:

Команда G вызывает выход из окна Soft-ICE с одноразовым набором точек останова на выполнение. Кроме того, активизируются все "прилипающие" точки останова.

Если не указан параметр адрес-начала, выполнение начинается с текущего CS:IP. В противном случае выполнение начинается с адреса-начала. Выполнение продолжается, пока не достигается адрес-останова, используется комбинация клавиш для вызова окна или не выполняется "прилипающая" точка останова.

Адрес останова должен указывать на первый байт опкода команды.

Когда достигается указанный адрес-останова, текущий CS:IP будет указывать на команду, где была установлена точка останова.

Команда G без параметров ведет себя также как команда X.

Обычная точка останова на выполнение использует 1 отладочный регистр 80386, пока все отладочные регистры не будут распределены для "прилипающих" точек останова. В этом случае, будет произведен останов в стиле INT 3. В таком случае команды G и P не будут корректно работать в ПЗУ. При попытке их использования будет выведено сообщение об ошибке.

Пример:


G CS:1234

Эта команда устанавливает временную точку останова на CS:1234

T

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

Синтаксис:


T [=адрес-начала] [счетчик]

Комментарии:

Команда T выполняет одиночный шаг на одну команду, используя флаг трассировки.

Если параметр адрес-начала не указан, выполнение начинается с текущего CS:IP. Если адрес-начала - определен, CS:IP изменяется на адрес-начала для трассировки.

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

В режиме работы с исходным текстом команда T переходит на следующее выражение в исходном тексте. Если текущее выражение - вызов процедуры или функции и есть исходный текст вызываемой подпрограммы, T входит в нее. Если нет исходного текста вызываемой процедуры или функции, T перешагивает через подпрограмму.

Пример:


T = 1284 3

Эта команда трассирует три инструкции, начиная с ячейки памяти 1284.

P

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

Синтаксис:


P

Комментарии:

Команда P - логический шаг программы. По текущему CS:IP выполняется одна команда, если она не является обращением, прерыванием, циклом или командой повторения работы со строковыми данными. В этих случаях, прежде чем управление возвращается Soft-ICE'у, выполняется вся подпрограмма или итерация.

Команда P использует одноразовую точку останова на выполнение. Обычная точка останова на выполнение использует 1 отладочный регистр 80386, пока все отладочные регистры не будут распределены для "прилипающих" точек останова. В этом случае, будет произведен останов в стиле INT 3. В таком случае команды G и P не будут корректно работать в ПЗУ. При попытке их использования будет выведено сообщение об ошибке.

В режиме работы с исходным текстом команда P переходит на следующее выражение в исходном тексте. Если текущее выражение - вызов процедуры или функции, P перешагивает через подпрограмму.

Пример:


P

Эта команда выполняет один 'программный шаг'.

HERE

HERE -- Исполнение программы до строки, в которой находится курсор

Синтаксис:


HERE

Комментарии:

Команда HERE выполняется, пока программа не достигает текущей строки курсора. HERE доступна, только когда курсор находится в окне кода. Если окно кода не видимо или курсор - не в окне кода, используйте вместо этого команду G.

Команда HERE вызывает выход из окна Soft-ICE с одноразовым набором точек останова на выполнение. Кроме того, активизируются все "прилипающие" точки останова.

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

Обычная точка останова на выполнение использует 1 отладочный регистр 80386, пока все отладочные регистры не будут распределены для "прилипающих" точек останова. В этом случае, будет произведен останов в стиле INT 3. В таком случае команда HERE не будет корректно работать в ОЗУ. При попытке ее использования будет выведено сообщение об ошибке.

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay