Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Aliens Vs Predator |#7| Fighting vs Predator
Aliens Vs Predator |#6| We walk through the tunnels
Aliens Vs Predator |#5| Unexpected meeting
Aliens Vs Predator |#4| Boss fight with the Queen

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Безруков Н.Н. Весь текст 1232.53 Kb

Компьютерная вирусология ч. 1

Предыдущая страница Следующая страница
1 ... 95 96 97 98 99 100 101  102 103 104 105 106
бы эта команда была введена в ответ на подсказку DOS.

 ХННСНННСННСННННННННННСННННННННННННННСННННННННННННННННННННННННННННННННННё
 ¦2F¦fun¦3+¦ сервис   ¦  PRINT       ¦Мультиплексное прерывание         ¦
 ¦  ¦   ¦  ¦ MS DOS   ¦ Multiplexor  ¦                                  ¦
 АДДБДДДБДДБДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

     Этот вектор (0000:00bc) предоставляет средства управления
процессами, доступные всей системе из любой программы. Часто
используется для проверки наличия в памяти той или иной резидентной
программы. используется спулером печати (команда PRINT).

 ХННСНННСННСННННННННННСННННННННННННННСННННННННННННННННННННННННННННННННННё
 ¦41¦ - ¦--¦ Указатель¦  FIXED DISK  ¦ Таблица параметров витнчестера   ¦
 ¦  ¦   ¦  ¦          ¦  PARAMETERS  ¦                                  ¦
 АДДБДДДБДДБДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
      Эта 16-байтовая структура находится по адресу вектора прерывания
INT 41h 4-байтовый адрес в 0:0104). Параметры для второго винчестера
(если он есть) находятся по адресу вектора INT 46h. Эти таблицы задают
некоторые важные переменные для операций с винчестера

 ХННСНННСННСННННННННННСННННННННННННННСННННННННННННННННННННННННННННННННННё
 ¦46¦ - ¦--¦ Указатель¦  Secondary   ¦ Таблица параметров второго       ¦
 ¦  ¦   ¦  ¦          ¦  FIXED DISK  ¦ винчестера                       ¦
 ¦  ¦   ¦  ¦          ¦  PARAMETERS  ¦                                  ¦
 АДДБДДДБДДБДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

 ХННСНННСННСННННННННННСННННННННННННННСННННННННННННННННННННННННННННННННННё
 ¦4A¦ - ¦--¦          ¦  User Alarm  ¦                                  ¦
 АДДБДДДБДДБДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

 ХННСНННСННСННННННННННСННННННННННННННСННННННННННННННННННННННННННННННННННё
 ¦5C¦fun¦--¦ сервис   ¦   NETBIOS    ¦                                  ¦
 ¦  ¦   ¦  ¦ MS DOS   ¦  INTERFACE   ¦                                  ¦
 АДДБДДДБДДБДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

 ХННСНННСННСННННННННННСННННННННННННННСННННННННННННННННННННННННННННННННННё
 ¦67¦fun¦--¦ сервис   ¦   LIM EMS    ¦ Функции управления расширенной   ¦
 ¦  ¦   ¦  ¦ MS DOS   ¦  INTERFACE   ¦ (EMS) памятью                    ¦
 АДДБДДДБДДБДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

 ХННСНННСННСННННННННННСННННННННННННННСННННННННННННННННННННННННННННННННННё
 ¦E0¦ - ¦--¦          ¦              ¦ CP/M-86 function calls           ¦
 АДДБДДДБДДБДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ





                                                        ПРИЛОЖЕНИЕ 9

              НАИБОЛЕЕ ЧАСТО ИСПОЛЬЗУЕМЫЕ ФУНКЦИИ MS DOS

     В данном приложении приведены сведения о некоторых распространенных
прерываниях MS DOS. Приводимая информация полезна при трассировке
"подозрительных" программ и их дизассемблировании. Более подробные
сведения можно получить в электронном справочнике TECHHELP Д. Роллинга
(D.Rolling). При написании данного приложения использовано руководство
Microsoft MS DOS. Operating System 3.3. Programmer Reference Manual.

     Прерывание 21 фактически не является прерыванием в строгом стысле
этого слова, поскольку оно не ведет к приостановке какой-то программы.
Это просто метод вызова фунцкий, обеспечиваемых MS DOS и прежде всего
функции управления файловой системы.  Эволюция MS DOS привела к тому,
что одни и те же  операции выполняются разными функциями т.е.
дублируются, а сам состав функций далек от логичности и ортогональности.
Тем не менее функционально операции можно сгруппировать следующим
образом (все числа шестнадцатеричные).

    0-12 -  Обмен с символьными устройствами;
   12-24 -  Работа с файлами с использованием FCB;
   25    -  Установить вектор прерываний
   26    -  Создать программный сегмент
   27-29 -  Работа с файлами с использованием FCB;
   2A-2E -  Обработка даты и времени:
         2A - Выдать дату
         2B - Установить дату
         2C - Выдать время

   2F-38 -  Разные операции, в том числе:
         30 - Выдать номер версии DOS
         31 - Закончить и остаться резидентом (KEEP)
         35 - Выдать значения вектора прерывания для заданной функции

   39-3B -  Работа с каталогами;
   3C-46 -  Работа с файлами с использованием логических номеров;
   47    -  Работа с каталогами;
   48-...-  Дополнительные операции.

     Большинство операций использует параметры, задаваемые в регист-
рах. Для некоторых операций параметр задается в виде строки ASCIIZ -
текстовой строки, заканчивающейся нулевым байтом.

     Операции 2F-38 используют вместо блока FCB так называемый
"номер файла" (file handle). При создании или открытии файла или
устройства в регистре AX возвращается 16-разрядный номер файла.
Значения некоторых номеров файлов определены по умолчанию:

         0000     Стандартый ввод. Может переназначаться.
         0001     Стандартый вывод. Может переназначаться.
         0002     Стандартый вывод сообщений.
                  Не может переназначаться.
         0003     Стандартый коммуникационный канал.
         0004     Стандартое устройство печати.

     Обычно функция MS DOS вызывается путем занесения номера функции в
регистр AX (точнее в его старший байт - AH) с последующим вызовом
прерывания 21. Однако существуют и другие способы обращения к этим
операциям, например с помощью длинного вызова подпрограммы (FAR CALL).
Вирусы могут пользоваться нестандартными способами обращения к функциям
MS DOS для маскировки и затруднения дизассемблирования кода.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=F  ±±±±±±±
                      Открыть файл, используя FCB

       При входе DS:DX указывает на неоткрытый блок управления файлом
(FCB). Указанное в нем имя ищется в каталоге; если оно не найдено, то в
AL возвращается FF. Если же файл найден, то в AL возвращается 00, а FCB
заполняется следующим образом: Если указан код устройства 0 (текущий
диск), он заменяется фактическим кодом диска, являеющегося в данный
момент текущим (1=A, 2=B и т.д.); поэтому переназначение текущего
диска не влияет на открытые файлы. Поле текущего блока (байты C-D)
обнуляется. Длина записи (байты E-F) устанавливается равной 80H. Длина
файл и дата заполняются на основании информации в каталоге. Если
программа работает с файлом, используя размер записи, отличный от 80H
байт, установленных по умолчанию, она должна изменить ее в FCB; она
также должна заполнить поля номера записи. Это должно быть сделано до
первого обращения к файлу.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=10 ±±±±±±±
                      Закрыть файл, используя FCB

     Эта операция заносит в каталог информацию об изменениях файла.
При входе DS:DX указывает на открытый блок управления файлом (FCB).
Указанный файл ищется в каталоге; если он не найден, то DOS
предполагает, что была сменена дискета, и в AL возвращается FF. Если
же файл найден, то в AL возвращается 00, и производится модификация
каталога.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=11 ±±±±±±±
              Искать первое имя по образцу, используя FCB

       При входе DS:DX указывает на неоткрытый блок управления файлом
(FCB). В каталоге ищется первое имя, удовлетворяющее заданному в FCB
образцу (имя-образец может содержать символы "?" в позициях, где может
стоять любая литера). Если такое имя не найдено, то в AL возвращется FF;
иначе в AL возвращется 00, а текущий буфер DTA заполняется следующим
образом:  Если заданный FCB является расширенным, то в первый байт DTA
заносится код FF, за ним следует 5 нулевых байтов, затем байт
атрибутов из заданного FCB, код устройства (1=A, 2=B и т.д.), и затем
32 байта, содержащие копию найденного элемента каталога. Таким образом,
в DTA строится неоткрытый расширенный блок управления файлом с теми же
атрибутами, что и у заданного FCB.  Если же задан обычный (не
расширенный FCB), то в первый байт DTA заносится код устройства
(1=A, 2=B и т.д.), и затем 32 байта, содержащие копию найденного
элемента каталога. Таким образом, в DTA строится неоткрытый блок
управления файлом. При использовании расширенного FCB поиск производит-
ся следующим образом:
     1. Если байт атрибутов равен 0, то ищутся только имена обычных
файлов. Элементы каталога, соответствующие метке тома, подкаталогам,
скрытым и системным файлам не анализируются.
     2. Если установлены атрибуты скрытого или системного файла, или
подкаталога, то они включаются в поиск. При этом выдаются как обычние
файлы так и файлы с соответствующими атрибутами. Чтобы просмотреть все
элементы каталога, кроме метки тома, следует указать в байте атрибу-
тов "скрытый" + "системный" + "подкаталог".
     3. Если указан атрибут метки тома, то ищется только единствен-
ный соответствующий элемент каталога. Структура байта атрибутов
приведена в Приложении 2.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=12 ±±±±±±±
            Искать следующее имя по образцу, используя FCB

       После обращения к операции 11, обращение к операции 12 ищет
следующее удовлетворяющее заданному в FCB образцу имя. Входные и
выходные параметры те же, что и в операции 11. При этом промежуточная
информация храниться в зарезервированных полях заданного FCB; поэтому
между обращениями к операциям 12 или 11 этот FCB не должен
использоваться для других операций.


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=13 ±±±±±±±
                      Удалить файл, используя FCB

       При входе DS:DX указывает на неоткрытый блок FCB. Все
соответствующие элементы каталога и именумые ими файлы уничтожаются.
(Имя в FCB может содержать символы "?"  в позициях, где может стоять
любая литера). Если таких элементов нет, в регистре AL возвращается FF,
иначе 00.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=14 ±±±±±±±
                Последовательное чтение, используя FCB

       При входе DS:DX указывает на открытый блок FCB. Запись,
указываемая номером текущего блока (байты C-D) и номером текущей записи
(байт 1F) пересылается в буфер DTA; номер записи увеличивается на 1.
Длина записи определяется из поля длины записи. Если обнаружен конец
файла, в регистре AL возвращается 01 или 03. Код 01 указывает, что в
буфер не переслано данных, код 03 соответствует ситуации, когда в файле
остались данные, но меньше, чем длина записи; в последнем случае запись
в буфере DTA дополняется нулевыми байтами. Код 02 означает, что
системный буфер слишком мал для обработки записи и запись переслана не
полностью. Код 00 свидетельствует о нормальном завершении операции.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=15 ±±±±±±±
                Последовательная запись, используя FCB

       При входе DS:DX указывает на открытый блок FCB. Запись из буфера
DTA длиной, указанной в поле длины записи, записывается в файл в
позицию, указываемую номером текущего блока и номером текущей записи;
(при длине записи, меньшей длины сектора, происходит буферизация). Номер
записи увеличивается на 1. В регистре AL возвращается код завершения: 01
диск полон; 02 - системный буфер слишком мал для обработки записи и
запись переслана не полностью. Код 00 свидетельствует о нормальном
завершении операции.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=16 ±±±±±±±
                      Создать файл, используя FCB

       При входе DS:DX указывает на неоткрытый блок FCB. Указанное в нем
имя ищется в каталоге; если оно найдено, то соответствующий элемент
каталога используется для нового файла, иначе ищется пустой элемент;
если такового нет, в регистре AL возвращается FF. Иначе элемент каталога
инициализируется, устанавливается нулевая длина файла, файл открывается
и в регистре AL возвращается 00. Используя расширенный FCB с
Предыдущая страница Следующая страница
1 ... 95 96 97 98 99 100 101  102 103 104 105 106
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (3)

Реклама