Восстановление пораженных объектов
Восстановление файлов-документов и таблиц
Для обезвреживания Word и Excel достаточно сохранить всю необходимую информацию в формате не-документов и не-таблиц - наиболее подходящим является текстовый RTF-формат, содержащий практически всю информацию из первоначальных документов и не содержащий макросов. Затем следует выйти из Word/Excel, уничтожить все зараженные Word-документы, Excel-таблицы, NORMAL.DOT у Word и все документы/таблицы в StartUp-каталогах Word/Excel. После этого следует запустить Word/Excel и восстановить документы/таблицы из RTF-файлов.В результате этой процедуры вирус будет удален из системы, а практически вся информация останется без изменений. Однако этот метод имеет ряд недостатков. Основной из них - трудоемкость конвертирования документов и таблиц в RTF-формат, если их число велико. К тому же в случае Excel необходимо отдельно конвертировать все Листы (Sheets) в каждом Excel-файле. Второй недостаток - потеря невирусных макросов, используемых при работе. Поэтому перед запуском описанной процедуры следует сохранить их исходный текст, а после обезвреживания вируса - восстановить необходимые макросы в первоначальном виде.
Восстановление загрузочных секторов
Восстановление секторов в большинстве случаев является довольно простой операцией и проделывается при помощи DOS'овской команды SYS (загрузочные сектора дискет и логических дисков винчестера) или командой FDISK/MBR (Master Boot Record винчестера). Можно, конечно же, воспользоваться утилитой FORMAT, однако практически во всех случаях команды SYS вполне достаточно.Следует иметь в виду, что лечение секторов необходимо производить только при условии отсутствия вируса в оперативной памяти. Если копия вируса в памяти не обезврежена, то вполне вероятно, что вирус повторно заразит дискету или винчестер после того, как код вируса будет удален (даже если воспользоваться утилитой FORMAT).
Будьте также крайне осторожны при использовании FDISK/MBR. Эта команда заново переписывает код программы-загрузчика системы и не изменяет таблицу разбиения диска (Disk Partition Table). FDISK/MBR является 100% лекарством для большинства загрузочных вирусов, однако, если вирус шифрует Disk Partition Table или использует нестандартные способы заражения, FDISK/MBR может привести к полной потере информации на диске. Поэтому перед запуском FDISK/MBR убедитесь в корректности Disk Partition Table. Для этого требуется загрузиться с незараженной DOS-дискеты и проверить корректность этой таблицы (наиболее удобная программа для этой цели - Norton Disk Editor).
Если же восстановление секторов при помощи SYS/FDISK невозможно, то следует разобраться в алгоритме работы вируса, обнаружить на диске первоначальный boot/MBR-сектор и перенести его на законное место (для этого подходят Norton Disk Editor или AVPUTIL). При этом надо постоянно иметь в виду, что при перезаписи системных загрузчиков необходимо соблюдать особую осторожность, поскольку результатом неправильного исправления сектора MBR или boot-сектора может быть потеря всей информации на диске (дисках).
Восстановление файлов
В подавляющем большинстве случаев восстановление зараженных файлов является достаточно сложной процедурой, которую невозможно произвести "руками" без необходимых знаний - форматов выполняемых файлов, языка ассемблера и т.д. К тому же обычно зараженными на диске оказываются сразу несколько десятков или сотен файлов и для их обезвреживания необходимо разработать собственную программу-антивирус (можно также воспользоваться возможностями редактора антивирусных баз из комплекта AVP версий 2.x).При лечении файлов следует учитывать следующие правила:
- необходимо протестировать и вылечить все выполняемые файлы (COM, EXE, SYS, оверлеи) во всех каталогах всех дисков вне зависимости от атрибутов файлов (т.е. файлы read-only, системные и скрытые);
- желательно сохранить неизменными атрибуты и дату последней модификации файла;
- необходимо учесть возможность многократного поражения файла вирусом ("бутерброд" из вирусов).
Само лечение файла производится в большинстве случаев одним из нескольких стандартных способов, зависящих от алгоритма размножения вируса. В большинстве случаев это сводится к восстановлению заголовка файла и уменьшению его длины.
Дезактивация оперативной памяти
Процедура дезактивации памяти, как и лечение зараженных файлов, требует некоторых знаний об операционной системе и обязательного знания азыка Ассемблер.При лечении оперативной памяти необходимо обнаружить коды вируса и изменить их таким образом, чтобы вирус в дальнейшем не мешал работе антивирусной программы - "отключить" подпрограммы заражения и стелс. Для этого требуется полный анализ кода вируса, так как процедуры заражения и стелс могут располагаться в различных участках вируса, дублировать друг друга и получать управление при различных условиях.
В большинстве случаев для дезактивации памяти достаточно "обрубить" прерывания, перехватываемые вирусом: INT 21h в случае файловых вирусов и INT 13h в случае загрузочных (существуют, конечно же, вирусы, перехватывающие другие прерывания или несколько прерываний). Например, если вирус заражает файлы при их открытии, то это может выглядеть примерно так:
Исходный код вируса Код дезактивированного вируса------------------- -----------------------------. . . . . . . . . . . . . . . . . .80 FC 3D CMP AH,3Dh 80 FC 3D CMP AH,3Dh74 xx JE Infect_File 90 90 NOP, NOPE9 xx xx JMP Continue E9 xx xx JMP Continue. . . . . . . . . . . . . . . . . .
При дезактивации TSR-копии вируса необходимо помнить, что вирус может предпринимать специальные меры для восстановления своих кодов (например, некоторые вирусы семейства "Yankee" восстанавливают их при помощи методов помехо-защищенного кодирования), и в этом случае придется нейтрализовать и механизм самовосстановления вируса. Некоторые вирусы, кроме того, подсчитывают CRC своей резидентной копии и перезагружают компьютер или стирают сектора диска, если CRC не совпадает с оригинальным значением. В этом случае необходимо "обезвредить" также и процедуру подсчета CRC.