rt copy a:\test.* .
Точка «.» в конце – символ текущего каталога. Потом их можно будет удалить:
rt del test.*
Теперь выбираем заведомо зараженную программу и запускаем ее N раз, постоянно изменяя время и дату. Проконтролировать изменение длины поможет та же программа rt:
rt dir test.* >test.txt
Получаем файл test.txt, содержащий список файлов test.* с указанием их длины. Выбираем тот файл приманки, который изменил длину. Вот вирус и пойман.
Как исследовать алгоритм работы вируса
Ситуация, когда компьютер оказался заражен неизвестным вирусом, встречается не очень часто, но полностью сбрасывать со счетов такую возможность нельзя. Выше рассматривались способы обнаружения вируса и выделения его в чистом виде. Сейчас переходим к исследованию алгоритма работы файловых вирусов для успешной борьбы с ними.
1. Прежде чем перейти к рассмотрению этого вопроса, вспомним некоторые принципы функционирования MS DOS.
Структура COM– и EXE-программ. Вообще говоря, следует отличать СОМ– и ЕХЕ-программы от СОМ– и ЕХЕ-файлов. Дело в том, что в настоящее время расширение СОМ или ЕХЕ является просто признаком (кстати, необязательным) запускаемой программы. Способ загрузки программы в память и ее запуска определяется операционной системой по внутреннему формату программы. Этот факт часто не учитывали авторы первых вирусов, что приводило к уничтожению некоторых программ вместо их заражения.
СОМ-программа представляет собой часть кода и данных, которая начинается с исполняемой команды и занимает не более 64Кбайт. Например, такую структуру имеет командный процессор СОМ– МАND.СОМ операционной системы MSDOS до версии 6.22 включительно.
Структура ЕХЕ-программы гораздо сложнее. В начале файла ЕХЕ-программы располагается заголовок (см. приложение). Поля ReloCS и ExeIP определяют расположение точки входа в программу, поля ExeSP и ReloSS – расположение стека, поля PartPag и PageCnt – размер корневого сегмента программы. Размер некоторых программ, вычисленный по полям PartPag и PageCnt, может не совпадать с реальным размером файла. Такие программы называются «сегментированными» или «содержащими внутренние оверлеи». Опытные авторы вирусов избегают заражать такие программы. После заголовка может размещаться специальная таблица, точное место расположения которой определяется полем TablOff, а размер – полем ReloCnt. В этой таблице хранятся адреса тех слов в коде программы, которые модифицируются операционной системой во время загрузки программы. Например, просматривая файл программы при помощи утилиты HackerView, можно видеть команду call 0000:1234h. В процессе загрузки программы MS-DOS подставит вместо нулей нужный сегментный адрес, и все будет работать корректно. Кстати, если в поле TablOff указано число 40h или больше, то, скорее всего, это программа в формате Windows. Подобный формат имеет, например, командный процессор Windows 95 COMMAND.COM. Несмотря на свое расширение, он имеет в начале знаменитые символы «MZ» и длину 95 Кбайт.
2. Приступаем к исследованию конкретного файлового вируса и разработке алгоритма его лечения. В качестве жертвы «показательного вскрытия» возьмем широко известный в начале 90-х годов вирус SVC-1740. Выбор определился следующими обстоятельствами:
– это очень простой вирус с четкой структурой;
– он не содержит деструктивных функций;
– не содержит грубых ошибок в алгоритме;
– он стандартно заражает СОМ– и ЕХЕ-программы.
Запустив SVC вирус на своей машине, можно наблюдать следующие его проявления.
а) В MS-DOS успели заразиться файлы ARCVIEW.EXE, HIEW.EXE и LEX.EXE. В результате HackerView, проверяющий целостность своего кода, отказался работать, сообщив: «HIEW bad, work is aborted».
б) Windows 3.11 и Windows 95 сначала запустились корректно, но затем продемонстрировали разноцветные горизонтальные полосы в видеорежиме 800x600x256 (вирус не заражал какие-либо драйвера, просто в момент старта Windows в памяти находился вирусный обработчик прерывания INT 21h).
Излечение пришло после использования антивирусов:
DrWeb c: /cup /al
и
AidsTest c: /f /g /q
3. При помощи ранее описанных методов заразим две приманки: TEST. COM и TEST.EXE. Увеличение их длины на 1740 байт можно увидеть только на «чистой» машине (Stealth-эффект). Несколько слов об инструментарии. Вообще говоря, выбор дизассемблеров весьма широк. В свое время была широко известна программа DisDoc. По признанию Е. Касперского, он активно пользуется интерактивным дизассемблером IDA. Быстро просмотреть код программы позволяет утилита HackerView. Также возможно использование любого отладчика. В данном случае для изучения кода зараженных приманок использовался дизассемблер Sourcer v5.04. Несмотря на отсутствие некоторых полезных опций и ошибки при дизассемблировании (достаточно редкие), пользоваться программой удобно – упакованная PkLite, она занимает на дискете всего 48Кбайт.
Читать дальше
Конец ознакомительного отрывка
Купить книгу