Энциклопедия компьютерных вирусов

         

Cruncher, семейство


Свое название этот вирус получил от строки своего текста : "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 | +------------------------------------------------------------+


Содержание раздела