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

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


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)

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


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

Как написать компьютерный вирус

Предыдущая страница Следующая страница
1 ... 18 19 20 21 22 23 24  25 26 27
    волом строки должен быть " $ " .Управляющие коды :
    07h - звонок, 08h - шаг назад, 0Ah - перевод стро-
    ки, 0Dh - возврат каретки .
    Вызов :   AH = 09h
              DS : DX = адрес строки .

    Функция 0Eh - Выбор диска .Предназначена для смены
    текущего диска .Также возвращает количество  логи-
    ческих дисков .
    Вызов :   AH = 0Eh
              AL = код дисковода ( 0 = A, 1 = B, 80h =
              = C и т.п. )
    Возврат : AL = количество дисководов в системе .

    Функция 19h - Получение текущего диска .
    Вызов :   AH = 19h
    Возврат : AL = код текущего  диска ( 0 = A, 1 = B,
              80h = C и т.п. ) .

    Функция 1Ah - Установка  адреса  области  передачи
    данных ( DTA ) .Устанавливает заданный адрес DTA .
    Вызов :   AH = 1Ah
              DS : DX = адрес DTA .

    Функция 25h - Установка  вектора прерывания .Запи-
    сывает адрес программы обработки заданного  преры-
    вания в таблицу векторов .
    Вызов :   AH = 25h
              AL = номер вектора прерывания
              DS : DX = адрес программы обработки пре-
              рывания .

    Функция 19h - Получение даты .
    Вызов :   AH = 2Ah
    Возврат : CX = год
              DH = месяц
              DL = день
              AL = день недели ( 0 = воскресенье,  6 -
              суббота ) .

    Функция 2Fh - Получение  адреса  области  передачи
    данных ( DTA ) .Возвращает текущий адрес DTA .
    Вызов :   AH = 2Fh
    Возврат : ES : DX = адрес DTA .

    Функция 35h - Получение вектора прерывания .Считы-
    вает адрес программы обработки заданного  прерыва-
    ния из таблицы векторов .
    Вызов :   AH = 35h
              AL = номер вектора прерывания
    Возврат : ES : BX = адрес программы обработки пре-
              рывания .

    Функция 3Bh - Смена каталога.Предназначена для вы-
    бора текущего каталога .
    Вызов :   AH = 3Bh
              DS : DX = полное имя каталога (например,
              C:\TASM\VIRUS\
    При ошибке :
              CF = 1
              AX = код ошибки .

    Функция 3Dh - Открытие файла .Открывает файл с за-
    данным именем и возвращает дескриптор,  выделенный
    этому файлу системой .Указатель устанавливается на
    начало файла .
    Вызов :   AH = 3Dh
              AL = режим доступа : 0 - для чтения
                                   1 - для записи
                                   2 - для чтения
                                       и записи
              DS : DX = полное  имя  файла ( например,
              C:\TASM\VIRUS\EXE_VIR.COM )
    Возврат : AX = дескриптор
    При ошибке :
              CF = 1
              AX = код ошибки .

    Функция 3Eh - Закрытие файла .Закрывает файл с за-
    данным дескриптором.Дескриптор освобождается, кро-
    ме того, модифицируются дата и время создания фай-
    ла, если файл был изменен .
    Вызов :   AH = 3Eh
              DX = дескриптор
    При ошибке :
              CF = 1
              AX = код ошибки .
    Функция 3Fh - Чтение из файла или устройства .Счи-
    тывает данные из файла или устройства и  модифици-
    рует указатель .При чтении читается строка указан-
    ной длины . При чтении  из символьного  устройства
    чтение прекращается,  если встретился символ  воз-
    врата каретки ( например,при вводе с клавиатуры ).
    Вызов :   AH = 3Fh
              BX = дескриптор
              CX = количество передаваемых символов
              DS : DX = адрес буфера,  в который поме-
              щаются данные
    Возврат : AX = число переданных байт
    При ошибке :
              CF = 1
              AX = код ошибки .

    Функция 40h - Запись в файл или в устройство .Счи-
    тывает данные из буфера и записывает их в файл,при
    этом модифицируется указатель .При записи  записы-
    вается строка указанной длины .
    Вызов :   AH = 40h
              BX = дескриптор
              CX = количество передаваемых символов
              DS : DX = адрес буфера,  в который поме-
              щаются данные
    Возврат : AX = число переданных байт
    При ошибке :
              CF = 1
              AX = код ошибки .

    Функция 42h - Установка указателя в файле .Предна-
    значена для установки  указателя на требуемый байт
    в файле .
    Вызов :   AH = 42h
              BX = дескриптор
              AL = режим установки указателя:
                   0 - смещение от начала файла
                   1 - смещение от текущего  положения
                   указателя
                   1 - смещение от конца файла
              CX = старшая часть смещения
              DX = младшая часть смещения
    Возврат : CX = старшая часть возвращенного  указа-
              теля
              DX = младшая часть возвращенного  указа-
              теля .

    Функция 48h - Выделение  блока  памяти  указанного
    размера .Выделяет блок памяти, после чего  возвра-
    щает его сегментный адрес .
    Вызов :   AH = 48h
              BX = Размер блока памяти в параграфах
    Возврат : AX = сегментный адрес выделенного систе-
    мой блока
    При ошибке :
              CF = 1
              AX = код ошибки .
              BX = размер   наибольшего  доступного  в
              данный момент блока .

    Функция 49h - Освобождение блока  памяти .
    Вызов :   AH = 49h
              ES = сегментный адрес блока,который сле-
              дует освободить
    При ошибке :
              CF = 1
              AX = код ошибки .

    Функция 4Ah - Изменение размера блока  памяти, ко-
    торый был выделен программе .
    Вызов :   AH = 4Ah
              BX = новый размер блока в параграфах .
              ES = сегментный адрес блока,размер кото-
              рого следует изменить
    При ошибке :
              CF = 1
              AX = код ошибки .
              BX = размер   наибольшего  доступного  в
              данный момент блока .

    Функция 4Ch - Завершение процесса с кодом  возвра-
    та .Завершает текущую задачу и передает код завер-
    шения родительскому процессу .Освобождает выделен-
    ную программе память, сбрасывает на диск  буферы,
    закрывает дескрипторы, восстанавливает из PSP век-
    тора прерываний INT 22h, INT 23h и INT 24h . Далее
    управление передается родительскому процессу .
    Вызов :   AH = 4Ch
              AL = код возврата .

    AL = 00h обычно соответствует нормальному заверше-
    нию программы .

    Функция 4Eh - Поиск первого файла .Производит  по-
    иск в заданном каталоге первого файла,  соответст-
    вующего заданной маске и имеющего указанные  атри-
    буты .
    Вызов :   AH = 4Eh
              CX = атрибуты  файла ( могут  комбиниро-
              ваться ) :
                   1   - только читаемый ( read only )
                   2   - скрытый ( hidden )
                   4   - системный ( system )
                   8   - метка тома
                   20h - архивный ( archive )
              DS : DX = адрес маски для поиска
    Возврат : имя  найденного  файла и его  расширение
    записывается в DTA в байты 1Eh - 2Ah .За последним
    символом расширения всегда следует точка : " . "
    При ошибке :
              CF = 1
              AX = код ошибки .

    Функция 4Fh - Поиск следующего файла .Почти всегда
    используется в паре с предыдущей функцией и  вызы-
    вается после того, как был найден первый файл .
    Вызов :   AH = 4Fh
    Возврат : имя  найденного  файла и его  расширение
    записывается в DTA в байты 1Eh - 2Ah .За последним
    символом расширения всегда следует точка : " . "
    При ошибке :
              CF = 1
              AX = код ошибки .

    Мультиплексное прерывание INT 2Fh.Используется для
    организации взаимодействия резидентных программ  с
    системой и друг с другом.Для программиста зарезер-
    вированы функции : C0h - FFh .
    Вызов :   AH = 2Fh
              AL = подфункция
    Возврат : AL = 0 - программа не  установлена  и ее
              можно установить
              AL = 1 - программа не  установлена  и ее
              нельзя установить
              AL = 0FFh - программа уже установлена .
    При ошибке :
              CF = 1
              AX = код ошибки .

    --------------------------------------------------

    Прерывание INT 13h,  функция 02h - чтение сектора.
    Считывает один или несколько определенных  пользо-
    вателем  секторов  физического диска в  выделенный
    буфер.Для начального сектора указываются такие ко-
    ординаты : дорожка,сектор, головка .Секторы на до-
    рожке  нумеруются  от единицы,  дорожки и  головки
    нумеруются от нуля .
    Вызов :   AH = 02h
              AL = количество читаемых секторов
              CH = дорожка
              CL = начальный сектор
              DH = головка
              DL = дисковод ( 00h - 07Fh - для дискет-
                   ного   дисковода,  80h - 0FFh - для
                   " винчестера " .
              ES : BX = адрес буфера, в который  будет
                        читаться информация из
                        секторов
    Возврат : CF = 0
              AH = 0
              AL = количество прочитанных секторов
    При ошибке :
              CF = 1
              AH = байт состояния .

     *
      Биты регистра CX 5...0 определяют номер сектора,
      а биты 15...6 - номер дорожки !!!
      Это выглядит так :

       ____________________________________________
      | Номер бита |15 |14 |13 |12 |11 |10 | 9 | 8 |
      |------------|---|---|---|---|---|---|---|---|
      | Содержимое |   |   |   |   |   |   |   |   |
      |    бита    |c  |c  |c  |c  |c  |c  |c  |c  |
      |____________|___|___|___|___|___|___|___|___|

       ____________________________________________
      | Номер бита | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
      |------------|---|---|---|---|---|---|---|---|
      | Содержимое |   |   |   |   |   |   |   |   |
      |    бита    |C  |c  |S  |s  |s  |s  |s  |s  |
      |____________|___|___|___|___|___|___|___|___|

      Буква " C " или " c " означает, что  бит  при-
      надлежит номеру дорожки;
      Буква " S " или " s " означает, что  бит  при-
      надлежит номеру сектора.

      Таким образом, биты "7" и "6" являются старши-
      ми битами номера дорожки, а биты "5" и "4" яв-
      ляются старшими битами номера сектора.

    Прерывание INT 13h,  функция 03h - запись сектора.
    Записывает один или несколько определенных пользо-
    вателем секторов на физический диск .Для начально-
    го сектора указываются такие координаты : дорожка,
    сектор, головка .Секторы на дорожке нумеруются  от
    единицы, дорожки и головки нумеруются от нуля .
    Вызов :   AH = 03h
              AL = количество записываемых секторов
              CH = дорожка
              CL = начальный сектор
              DH = головка
              DL = дисковод ( 00h - 07Fh - для дискет-
                   ного   дисковода,  80h - 0FFh - для
                   " винчестера " .
              ES : BX = адрес буфера,информация из ко-
                        торого будет записываться
                        в сектора
    Возврат : CF = 0
              AH = 0
              AL = количество записанных секторов
    При ошибке :
              CF = 1
              AH = байт состояния .

     *
      Биты регистра CX 5...0 определяют номер сектора,
      а биты 15...6 - номер дорожки !!!
      ( см функцию 02h ).

    Прерывание INT 13h,  функция 08h - получение пара-
    метров дисковода.
    Вызов :   AH = 08h
              DL = дисковод ( 00h - 07Fh - для дискет-
                   ного   дисковода,  80h - 0FFh - для
                   " винчестера " .
    Возврат : AH = 0
              BL = тип дисковода ( только AT и PS2 )
              DL = количество накопителей, обслуживае-
Предыдущая страница Следующая страница
1 ... 18 19 20 21 22 23 24  25 26 27
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (9)

Реклама