б) Обнаружение файлового вируса. Нерезидентные файловые вирусы специально не скрывают своего наличия в системе. Поэтому основным признаком заражения файла является увеличение его длины, которое легко заметить даже в инфицированной операционной системе. Резидентные вирусы могут скрывать изменение длины файла (да и вообще наличие своего кода внутри файла-жертвы), если они написаны по Stealth-технологии. Но при загрузке с «чистой» дискеты это можно увидеть. Некоторые вирусы не изменяют длину заражаемых программ, используя «пустые» участки внутри файла программы или кластерный «хвост» файла, расположенный после последнего заполненного сектора. В этом случае основной признак заражения – изменение контрольной суммы байт файла. Это легко обнаруживают антивирусы-инспектора типа AdInf. В качестве крайней меры можно рассматривать прямое изучение кода программ, подозрительных с точки зрения наличия в них вируса. Одно из лучших программных средств для оперативного изучения кода вирусов – программа HackerView (hiew.exe by SEN). Но, поскольку «по умолчанию» компьютер чужой, hiew, td, softice, ida и подобных программ на нем может просто не оказаться. Зато стандартный отладчик debug присутствует точно. Загружаем подозреваемую на наличие вируса программу (в чистой операционной системе) в память при помощи команды debug <имя_программы>. Команда u позволяет дизассемблировать фрагмент кода, команда d – просмотреть его в шестнадцатеричном формате, команда g <адрес> запускает программу на выполнение с остановом в указанной точке, команда t обеспечивает пошаговую трассировку кода, команда r отображает текущее содержимое регистров. Чтобы визуально распознать наличие вируса по коду, конечно, необходим определенный опыт. Вот на что надо обращать особое внимание:
– Наличие в начале программы последовательности команд подобного типа крайне подозрительно:
Start:
call Metka
Metka: pop