Внедрение вируса
в загрузочный сектор
Загрузочные вирусы заражают
загрузочный (Boot) сектор
флоппи-диска и Boot-сектор или Master Boot
Record (MBR) винчестера. При
инфицировании диска вирус в
большинстве случаев переносит
оригинальный Boot-сектор (или MBR) в
какой-либо другой сектор диска
(например, в первый свободный). Если
длина вируса больше длины сектора,
то в заражаемый сектор помещается
первая часть вируса, остальные
части размещаются в других
секторах (например, в первых
свободных). Затем вирус копирует
системную информацию, хранящуюся в
первоначальном загрузчике в свои
коды и записывает их в загрузочный
сектор (для MBR этой информацией
является Disk Partition Table, для Boot-сектора
дискет - BIOS Parameter Block).
Существует несколько способов
размещения на диске
первоначального загрузочного
сектора и продолжения вируса: в
сектора свободных кластеров
логического диска, в
неиспользуемые или редко
используемые системные сектора, в
сектора, расположенные за
пределами диска.
Если продолжение вируса
размещается в секторах, которые
принадлежат свободным кластерам
диска (при поиске этих секторов
вирусу приходится анализировать
таблицу размещения файлов - FAT), то,
как правило, вирус помечает в FAT эти
кластеры как сбойные (так
называемые псевдосбойные
кластеры). Этот способ используется
вирусами "Brain", "Ping-Pong" и в
дальнейшем будет именоваться как
СПОСОБ "BRAIN".
Вирусы семейства "Stoned"
используют другой метод - они
размещают старый загрузочный
сектор в неиспользуемом или редко
используемом секторе. На
винчестере этот сектор является
одним из секторов (если такие есть),
расположенных между MBR и первым
Boot-сектором, а на дискете этот
сектор выбирается из последних
секторов корневого каталога. В
дальнейшем этот метод будет
называться СПОСОБ "STONED".
Реже используется метод
сохранения продолжения вируса за
пределами диска, этот метод пока
встречался только при заражении
вирусом флоппи-дисков. Для этого
вирусу приходиться форматировать
на диске дополнительный трек (метод
нестандартного форматирования),
например, 40-й трек на 360K дискете.
Конечно, существуют и другие
методы размещения вируса на диске,
например, вирусы семейства
"Azusa" содержат в своем теле
стандартный загрузчик MBR и при
заражении записываются поверх
оригинального MBR без его
сохранения.
Алгоритм работы
загрузочного вируса
Как правило загрузочные вирусы
всегда резидентны. Они внедряются в
память компьютера при загрузке с
инфицированного диска. При этом
системный загрузчик считывает
содержимое первого сектора диска, с
которого производится загрузка,
помещает считанную информацию в
память и передает на нее (т.е. на
вирус) управление. После этого
начинают выполняться инструкции
вируса, который:
- уменьшает объем свободной памяти
(слово по адресу 0040:0013);
- считывает с диска свое
продолжение (если оно есть);
- переносит себя в другую область
памяти (например, в самые старшие
адреса памяти);
- устанавливает необходимые
векторы прерываний;
- совершает, если они есть,
дополнительные действия;
- копирует в память оригинальный
Boot-сектор и передает на него
управление.