б) Нарушения в логической структуре диска. Загружаемся с чистой дискеты и запускаем (с нее) ndd. Сначала просто отмечаем наличие ошибок (перекрестных цепочек, потерянных кластеров и так далее). Если ошибок очень много и подавляющее их число относится к СОМ– и ЕХЕ-файлам, то ни в коем случае нельзя выполнять операцию исправления ошибок: это может быть DIR-подобный вирус, и такое «лечение» диска может стать для многих программ фатальным. Если ошибки есть и их относительно немного, рискуем и лечим диск. Вновь загружаемся с винчестера. Сбои пропали?
в) Конфликты между различными компонентами операционной системы и прикладными программами. Особенно «вредоносными» являются дисковые драйверы-обманщики, активно видоизменяющие (пусть и с благородными целями) информацию, считываемую или записываемую на диск:
– дисковые кэш (SMARTDRV, NC_CASHE);
– упаковщики дисков (DblSpace, DrvSpace, Stacker);
– системы безопасности (антивирусные мониторы типа PROTECT, HDPROT, ADM и прочие, системы разграничения доступа DISKMON, DISKREET). Нередко сбоят устаревшие пристыковочные системы защиты от несанкционированного копирования, типа NOTA или CERBERUS.
6. Наконец, самый интересный случай – вирус явно не обнаружен, но подозрения на его наличие по-прежнему остаются. Достаточно подробно эту тему изложил Е. Касперский в своей книге «Компьютерные вирусы в MS-DOS», избранные фрагменты которой можно найти в гипертекстовом каталоге avpve того же автора. Остается только привести краткое изложение этих глав с уточнениями и замечаниями (может быть, весьма спорными).
а) Обнаружение загрузочного вируса. Загружаемся с чистой дискеты и, запустив DiskEditor, заглядываем в сектор 0/0/1 винчестера. Если винчестер разделен (при помощи fdisk) на логические диски, то код занимает приблизительно половину сектора и начинается с байт FAh 33h C0h (вместо 33h иногда может быть 2Bh). Заканчиваться код должен текстовыми строками типа «Missing operating system». В конце сектора размещаются внешне разрозненные байты таблицы разделов. Нужно обратить внимание на размещение активного раздела в таблице разделов. Если операционная система расположена на диске С, а активен 2, 3 или 4 раздел, то вирус мог изменить точку старта, сам разместившись в начале другого логического диска (заодно нужно посмотреть и там). Но также это может говорить о наличии на машине нескольких операционных систем и какого-либо boot-менеджера, обеспечивающего выборочную загрузку. Проверяем всю нулевую дорожку. Если она чистая, то есть ее сектора содержат только байт-заполнитель, все в порядке. Наличие мусора, копий сектора 0/0/1 и прочего может говорить о присутствии загрузочного вируса. Впрочем, антивирусы при лечении загрузочных вирусов лишь «обезглавливают» противника (восстанавливают исходное значение сектора 0/0/1), оставляя тело «догнивать» на нулевой дорожке. Проверяем boot-сектор MS-DOS, он обычно расположен в секторе в 0/1/1. Его внешний вид для сравнения можно найти как в вышеупомянутой книге Е. Касперского, так и на любой «чистой» машине. Итак, если вирус обнаружен, при помощи DiskEditor переписываем в файл зараженный объект: MBR 0/0/1 (а лучше всю нулевую дорожку), boot 0/1/1 и все остальное. Желательно отправить этот комплект вирусологам. Копию, при желании, оставляем себе – для опытов.