Игорь Гульев - Создаем вирус и антивирус
- Название:Создаем вирус и антивирус
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Игорь Гульев - Создаем вирус и антивирус краткое содержание
Virus Warning!
С этим сообщением, хоть раз в жизни, сталкивался любой пользователь компьютера. Вирмейкеры с упорством маньяков плодят все новые и новые разновидности вирусов. Бытует мнение, что избавиться от них можно лишь с помощью сложных и дорогостоящих новейших антивирусных программ. Это не совсем верно – знание принципов действия и способов внедрения вирусов поможет вовремя их обнаружить и локализовать, даже если под рукой не окажется подходящей антивирусной «вакцины».
В этой книге вы найдете обширный материал, посвященный проблеме защиты информации, рассмотренной с обеих сторон баррикад (как от лица вирмейкера, так и создателя антивирусов).
Создаем вирус и антивирус - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Выход:
AL=00h, если функция выполнена успешно
AL=FFh, если файл не найден там, где он находился при открытии с помощью функции 0FhОписание.
Закрывает файл, открытый функцией 0Fh. Файл должен находиться на своем первоначальном месте в текущем оглавлении диска, на котором он был открыт. Если файл найден, оглавление обновляется, файловые буфера сбрасываются и возвращается AL=00h. Если файл не найден, оглавление не обновляется и возвращается AL=FFh.
DOS, функция 11h Найти первый совпадающий файл через FCBВход:
AH=11h
DS:DX – адрес неоткрытого FCB (Таблица Б-2)Выход:
AL=00h, если подходящее имя найдено
DTA заполнен
AL=FFh, если подходящего имени нетОписание.
В текущем оглавлении DOS происходит поиск файлов с именем, соответствующим заданному шаблону. При неудаче возвращается AL=0FFh. Если имя найдено, AL очищается, в первый байт DTA помещается номер дисковода (A – 1, B – 2 и так далее), а в следующие 32 байта помещается элемент оглавления для найденного файла.
Можно использовать при вызове расширенный FCB, чтобы выбирать файлы с указанными атрибутами. В этом случае в DTA помещаются: байт FFh, 7 байт нулей, номер диска и элемент оглавления.
DOS, функция 12h Найти следующий совпадающий файл через FCBВвод:
AH=12h
DS:DX – адрес неоткрытого FCB (Таблица Б-2)Выход:
AL=00h, если подходящее имя найдено
DTA заполнен AL=FFh, если подходящего имени нетОписание.
Используется после вызова функции 11h (Найти первый совпадающий файл через FCB) с обобщенным именем файла. Каждый последующий вызов заполняет DTA очередным подходящим элементом оглавления и возвращает AL=00h. Если подходящих имен больше нет, возвращается AL=FFh.
Резервируемая область в FCB сохраняет информацию, необходимую для продолжения поиска. Поэтому не стоит открывать и изменять FCB между вызовами.
DOS, функция 13h Удалить файл через FCBВход:
AH=13h
DS:DX – адрес неоткрытого FCB (Таблица Б-2)Выход:
AL=00h, если функция выполнена успешно
AL=FFh, если файл не найден или доступ к файлу не разрешенОписание.
Эта функция удаляет все подходящие файлы в текущем оглавлении указанного диска согласно спецификации в FCB. Если подходящие файлы не найдены или если доступ отвергнут (как при попытке удалить файл с атрибутом Read-Only), функция возвращает в регистре AL значение FFh.
DOS, функция 14h Последовательное чтение из файла через FCBВход:
AH=14h
DS:DX – адрес открытого FCB (Таблица Б-2)Выход:
AL=00h, если чтение было успешным и DTA содержит данные
AL=01h, если достигнут конец файла (EOF) и данные не считаны
AL=02h, если произошел выход за сегмент (чтения не было)
AL=03h, если EOF и считана усеченная запись (дополнена нулями)Описание.
Функция читает файл, специфицированный в FCB. Затем соответственно увеличивает значения полей в FCB.
Перед началом последовательной обработки файла нужно сбрасывать CurRec в ноль, так как функция 0Fh не инициализирует это поле.
DOS, функция 15h Последовательная запись в файл через FCBВход: AH=15h
DS:DX – адрес открытого FCB (Таблица Б-2)Выход:
AL=00h, если запись была успешной
AL=01h, если ошибка переполнения диска (данные не записаны)
AL=02h, если произошел выход за сегмент (записи не было)Описание.
Функция записывает файл, специфицированный в FCB. Затем соответственно увеличивает значения полей в FCB.
Перед началом последовательной обработки файла нужно сбрасывать «Номер текщей записи» в ноль, так как функция 0Fh не инициализирует это поле.Примечание.
DOS буферизует данные, записывая полный сектор за один раз.
DOS, функция 16h Создание файла через FCBВход:
AH=16h
DS:DX – адрес неоткрытого FCB (Таблица Б-2)Выход:
AL=00h, если функция выполнена успешно FCB заполнен
AL=FFh, если при выполнении функции возникли ошибкиОписание. Файл, специфицированный неоткрытым FCB, создается на диске, указанном в FCB (0 – текущий, 1 – A и так далее). Он открывается в текущем оглавлении этого диска. FCB заполняется аналогично функции 0Fh. Если файл существует в момент вызова, его элемент оглавления перекрывается новым файлом, а длина файла сбрасывается в ноль.
Примечание.
Handle-ориентированные функции DOS 2.0+ гораздо удобнее в работе.
DOS, функция 17h Переименовать файл через FCBВход:
AH=17h
DS:DX – адрес измененного FCB (Таблица Б-2)Выход:
AL=00h, если функция выполнена успешно
AL=FFh, если при выполнении функции возникли ошибкиОписание.
Переименовывает файл в текущем оглавлении.
DOS, функция 19h Получить текущий диск DOSВход:
AH=19hВыход: AL – номер текущего диска (0 – A, 1 – B, и так далее)
Описание.
Возвращает номер дисковода текущего диска DOS.
DOS, функция 1Ah Установить адрес DTAВход:
AH=1Ah
DS:DX – адрес DTAОписание.
Устанавливает адрес DTA. Все FCB-ориентированные операции работают с DTA. DOS не позволяет операциям ввода/вывода пересекать границу сегмента. Функции поиска 11h, 12h, 4Eh и 4Fh помещают данные в DTA. DTA глобальна, поэтому надо проявлять осторожность при назначении ее в рекурсивной процедуре. При запуске программы ее DTA устанавливается по смещению 80h относительно PSP.
DOS, функция 1Bh Получить информацию FAT для текущего дискаВход:
AH=1BhВыход:
DS:BX – адрес байта FAT ID, отражающего тип диска (Таблица Б-3)
DX – всего кластеров (единиц распределения) на диске
AL – секторов на кластер
CX – байт на сектор
Таблица Б-3. Значения IDОписание.
Возвращает информацию о размере и типе текущего диска. Размер диска (в байтах) равен DX*AL*CX. Свободную память можно найти функциями 36h или 32h.Версии: DOS 1.x держит FAT в памяти и возвращает DS:BX => FAT. DOS 2.0+ может держать в памяти лишь часть всей FAT.
Примечание.
Эта функция изменяет содержимое регистра DS.
DOS, функция 1Ch Получить информацию FAT для указанного дискаВход:
AH=1Ch
DL – номер диска (0 – текущий, 1 – A и так далее)Выход:
DS:BX – адрес байта FAT ID, отражающего тип диска (приведен в описании функции 1Bh)
DX – всего кластеров (единиц распределения)
AL – секторов на кластер
CX – байт на секторОписание.
Аналогична функции 1Bh с той разницей, что регистр DL указывает диск, для которого нужно получить информацию.
DOS, функция 21h Считать произвольную запись файлаВход:
AH=21h
DS:DX – адрес открытого FCB (Таблица Б-2)Выход:
AL=00h, если чтение было успешным и DTA заполнена данными
AL=01h, если достигнут конец файла (EOF) и чтения не было
AL=02h, если произошел выход за сегмент (чтения нет)
AL=03h, если встречен EOF и усеченная запись дополнена нулямиОписание.
Читать дальшеИнтервал:
Закладка: