
КАТАЛОГ БУТОВЫХ ВИРУСОВ                            (C) Д.А.МАКАРОВ, Москва 1992
_______________________________________________________________________________

     КОД: B-1C                                                Редакция 10.03.92

     ИМЯ: MPHTI (BootChecker, AIDSTEST, -V)

     УСТАНОВКА: Скрывает  от DOS  2 Кб памяти  и создает там  резидентную копию
(512 байт).  Перехватывает прерывание 13h (xxxx:00D2) - операции с диском.  При
установке пытается заразить жесткий диск.  На жестком диске перезаписывает себя
с новым значением счетчика. Проверяет наличие себя в памяти, вводя в прерывании
13h собственную функцию 5447h,  и если находит, то запускает резидентную копию,
пропустив ее создание и перехват прерывания.

     ЗАРАЖЕНИЕ: Записывается на дискете в сектор 0/0/1, на жестком диске в бут-
сектор раздела,  замещая бут. Хвост (1 сектор) содержит исходный бут и хранится
в последнем секторе корневого каталога (дискеты или раздела), который вирус ак-
куратно вычисляет,  используя BPB. Сохраняет в себе исходный BPB. При заражении
жесткого диска находит загружаемый раздел,  анализируя таблицу разделов, причем
если такой не найден, то заражает последний (вероятно, от злости).
     Попытка заражения жесткого диска происходит при установке вируса с дискеты
(до загрузки DOS),  дискеты - при каждой операции чтения в дисководе A: (если в
момент  обращения  мотор  дисковода  не был включен).  Распознает себя по слову
[0009]=8892h.

     МАСКИРОВКА: Stealth.  При  чтении  бутсектора  (на любом диске) проверяет,
прочитан ли вирус,  и если да, то подставляет сектор с исходным бутом. Если при
этом читается более одного сектора, последующие сектора читаются правильно. Тем
не менее,  при попытке перезаписать бутсектор или MBR операция записи почему-то
заменяется на чтение (для всех секторов, участвующих в операции). Регистры сох-
раняет.
     Исходного OEM ID вирус не оставляет.  Вместо него в байтах 2-10 содержится
текст "1991,МФТИ". Разумеется, при резидентном вирусе он не виден, зато заметен
при просмотре бутсектора зараженной дискеты на чистой машине.
     Предусмотрены мелкие антиотладочные средства.

     ПРОЯВЛЕНИЯ: После  516 (!) загрузок с момента заражения жесткого диска пы-
тается затереть на дискете в дисководе  A:  секторы  0/0/1-0/0/8  (бутсектор  и
FAT),  затем  на жестком диске секторы 0/0/1-0/0/8 (MBR и таблицу разделов),  а
также секторы 0/1/1-0/1/8 (обычно бутсектор и FAT раздела  C:).  Восстановление
информации на дискете практически невозможно, а на жестком диске является весь-
ма сложной задачей. Раздел C: можно восстановить, разыскав правильный бутсектор
в конце корневого каталога (вирус его не затирает) и синхронизировав FATы.

     ПОБОЧНЫЕ ЭФФЕКТЫ:  Вычисляя параметры для операции записи,  автор допустил
ошибку  (регистры  перепутал,  балбес),  поэтому при попытке заразить бутсектор
дальше 255-го цилиндра вирус сходит с ума и начинает писать куда попало.
     При отсутствии жесткого диска вирус зацикливается.
     Последний сектор каталога дискеты используется при наличии на ней большого
количества файлов (более 96 у DS/DD). При заражении дискеты попавшие туда файлы
будут потеряны. Для HD это маловероятно.
     Исходный бут на дискетах хранит там же,  где Stoned, поэтому при заражении
дискеты,  инфицированной ранее Stoned или аналогами , правильный бут теряется и
загрузка становится невозможной.

     ИСТОРИЯ: Содержащийся  в  вирусе текст указывает место и время разработки:
Московский физико-технический институт (поздравляем!), 1991 год. Действительно,
обнаружен в Москве весной 1991 года.
     Имеется версия, по моему впечатлению, более поздняя (вопреки нумерации Ло-
зинского), поскольку напихано туда еще больше. Основные отличия:
     Установка. При создании резидента копируется 518 байт (чтобы  не  обнулять
регистр cl). Адрес обработчика прерывания 13h - xxxx:00AD.
     Заражение. На жестком диске всегда заражает раздел C:, не проверяя, загру-
жаемый ли он (адрес бутсектора, как и раньше, берется из таблицы разделов). Зато
теперь вирус нормально работает при отсутствии  жесткого  диска.  Для  хранения
хвоста используется ПРЕДпоследний сектор корневого каталога, благодаря чему ви-
рус не конфликтует со Stoned & Co.  на дискетах. Соответственно, на DS/DD файлы
в конце корневого каталога теряются, если их больше 80.
     Маскировка. Обработчик int 13h умеет обнаруживать  попытку  трассировки  и
немедленно возвращает управление вызывающей программе, не передавая его в BIOS.
В частности,  при попытке какой-либо программы (обычно  сторожа,  ревизора  или
драйвера)  получить адрес int 13h в BIOS по TP-методу,  проходя вызов int 13h с
флагом трассировки,  либо получается адрес обработчика вируса,  либо происходит
зависание.
     При установке вирус запоминает адрес в BIOS прерывания 40h (на который пе-
реустанавливается дискетный ввод/вывод),  и восстанавливает его на время работы
с дискетами, отрезая всех сидящих на нем сторожей, а заодно и драйверы.
     Проявления. Те же, но взрывается после 769 (=0301h) загрузок.
     Побочные эффекты.  Разумеется, вирус конфликтует со всякого рода дисковыми
драйверами, сторожами и ревизорами, блокируя доступ к BIOS int 13h и int 40h.
     Продолжение следует ?..
