Virus.DOS.Cruncher

Дата обнаружения 11/01/2002
Класс Virus
Платформа DOS
Описание

Свое название этот вирус получил от строки своего текста : «Cruncher

V1.0с». Это слово имеет специальное значение: «crunching» — название одного

из популярных методов паковки данных.

На первый взгляд вирус является вполне обычным резидентным файловым

вирусом. Он оставляет в памяти свою резидентную копию, перехватывает INT

21h и при запуске файлов записывается в них, используя стандартный

«джентельменский» набор аккуратного вируса: перехват INT 24h, обработка и

сохранение атрибутов и времени создания файла.

Но на этом стандартность вируса заканчивается. В момент заражения файла

использует алгоритм компрессии данных и пакует зараженный файл. Длина

файла, зараженного вирусом, часто становится меньше (иногда значительно

меньше) длины исходного файла. При заражении вирус освобождает место на

дисках!

Алгоритм заражения файлов и их упаковки выглядит следующим образом. При

запуске файла на выполнение вирус считывает его содержимое в оперативную

память (весь файл целиком), если, конечно, достаточно свободного места:




+-----------------------------------+   файл, считанный в оперативную



|        Файл                       |   память компьютера (образ файла)



+-----------------------------------+



Затем вирус обычным способом заражает считанный файл, но заражение

осуществляется в оперативной памяти компьютера. Дописывание вируса и

изменение начала файла происходит со считанным в память образом файла. При

этом обращения к дискам не происходит.




+---------------------------------+  зараженный образ файла



|                                 V



+------------------------------------------------------------+



| JMP |  Файл                       | Вирус                  |



+------------------------------------------------------------+



Потом вирус запускает алгоритм упаковки, коды которого содержатся внутри

тела вируса. Зараженный образ файла пакуется, начиная с первого байта

(команды JMP) и кончая последним байтом вируса. При этом вирус использует

алгоритм паковки из популярной утилиты DIET версии 1.10. После упаковки

зараженный образ файла выглядит следующим образом:




+-------------------------------------------------------------------+



| Блок копирования| Блок упакованных данных . . . | Блок распаковки |



+-------------------------------------------------------------------+



Блок копирования и Блок распаковки являются стандартными «обкладками»

паковщика DIET, более того, соответствующая версия DIET’а в состоянии

распаковать упакованный вирусом файл. Налицо полная совместимость вируса

CRUNCHER и утилиты DIET.

Зараженный и упакованный образ файла сохраняется на диск вместо

первоначального файла, а области памяти, задействованные вирусом при его

заражении, освобождаются. Таким образом вирус заканчивает свое внедрение в

файл.

При запуске зараженного файла все происходит так, как будто обычный вирус

был запакован утилитой DIET. Коды блоков копирования и распаковки (см.

рисунок) восстанавливают запакованный код (т.е. вирус), который затем

перехватывает INT 21h и остается резидентно в памяти.

«Cruncher» содержит строки текста:




[ MK / Trident ]



Cruncher V1.0с



«Cruncher.4000» заражает также и EXE-файлы. При заражении EXE проверяет их

на наличие заголовка NewExe-файла и не поражает Windows-файлы. Также не

заражает EXE-файлы, имена которых начинаются с комбинаций символов: SC, CL,

VS, NE, HT, TB, VI, FI, GI, RA, FE, MT, BR, IM. В некоторых случаях выводит

сообщение:




+------------------------------------------------------------+



| *** CRUNCHER V2.0 ***   Automatic file compression utility |



| Written by Masud Khafir of the TridenT group  (c) 31/12/92 |



| Greetings to Fred Cohen, Light Avenger and Teddy Matsumoto |



+------------------------------------------------------------+