Осторожно компьютерные вирусы

       

Прерывание INT 13h


Прерывание INT 13h, обработчик которого находится в BIOS, позволяет любой программе беспрепятственно читать и записывать любые секторы жесткого или гибкого диска. Зная логическую структуру файловой системы MS-DOS (частично описанную в предыдущей главе), разработчик вируса при помощи этого прерывания может встроить вирусный код в загрузочную запись или в любое другое подходящее с его точки зрения место.

Разумеется, о прерывании INT 13h знают не только разработчики вирусов, но и авторы антивирусных программ. И те и другие борятся за получение “настоящей” точки входа в обработчик этого прерывания, который должен быть расположен в постоянном запоминающем устройстве. Целью вируса является перехват прерывания INT 13h, а целью антивирусной программы - обнаружение такого перехвата.

Тем не менее, даже надежно защитив точку входа в обработчик прерывания INT 13h, нельзя гарантировать полную защиту от вирусной атаки.

Как вы, возможно, знаете, в реальном режиме работы процессора программе разрешается выполнять операции обмена данными с любыми портами периферийных устройств. В том числе и с портами контроллера жесткого диска или накопителя на гибком магнитном диске. В 19 томе “Библиотеки системного программиста” мы привели пример программы, которая работает именно таким образом, читая сектор дискеты без обращения к прерыванию INT 13h.

Для того чтобы у вас было некоторое представление о том, что может сделать вирус при помощи прерывания INT 13h, приведем краткое описание функций этого прерывания:



Номер функции

Описание

00h

Сброс дисковой системы

01h

Определение состояния дисковой системы

02h

Чтение сектора

03h

Запись сектора

04h

Проверка сектора

05h

Форматирование дорожки

06h

Форматирование дорожки НМД

07h

Форматирование НМД

08h

Получить текущие параметры НГМД или НМД

09h

Инициализация таблиц параметров НМД

0Ah

Чтение длинное (только для НМД)

0Bh

Запись длинная (только для НМД)

0Ch

Поиск цилиндра (только для НМД)

0Dh

Альтернативный сброс НМД

0Eh

Чтение буфера (только для НМД)

0Fh

Запись буфера (только для НМД)

10h

Проверка готовности НМД

11h

Рекалибровка НМД

12h

Проверка памяти контроллера НМД

13h

Проверка НМД

14h

Проверка контроллера НМД

15h

Получить тип НМД или НГМД

16h

Проверка замены диска

17h

Установка типа дискеты

18h

Установка среды носителя данных для форматирования

19h

Парковка головок (только для НМД)

1Ah

Форматирование НМД с интерфейсом ESDI

<
Как видите, вирус может прочитать, записать и отформатировать дорожку диска. Используя команды 0Ah и 0Bh, разработанные для диагностических целей, вирус может изменить контрльные суммы секторов данных, которые обычно подсчитываются, записываются и проверяются автоматически.

SillyRE.666

Опасный шифрованный вирус.

После загрузки в память своей резидентной копии вирус записывает "мусор" в 11 сектор нулевой дорожки (головка с номером 1), пользуясь для этого операцией длинной записи. Обычно на этом месте диска находится первая копия таблицы размещения файлов FAT

С помощью функций прерывания INT 13h вирус может получить доступ к внутреннему буферу, расположенному непосредственно в дисковом накопителе.

Другой “лакомый кусочек” для вирусов - прерывание INT 76h, которое вырабатывается при завершении операции в контроллере жесткого диска. Вирус может перехватывать это прерывание для реализации стелс-технологии.


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