Очень опасный резидентный полиморфный Win32-вирус. Размер вируса - более 20Kb. Заражает KERNEL32.DLL и PE EXE-файлы, при заражении записывает свой код в конец файла и модифицирует необходимые поля в PE-заголовке для того, чтобы получить управление при старте зараженного файла. Вирус также добавляет зараженные файлы в архивы различных типов - ACE, RAR, ZIP, CAB, ARJ, и в некоторые версии самораспаковывающихся архивов - SFX ACE и RAR. При заражении обычных PE-файлов вирус шифрует себя полиморфик-кодом, а при заражении KERNEL32.DLL оставляет свой код незашифрованным.
Вирус использует анти-отладочные приемы, отключает антивирусные резидентные мониторы Avast, AVP, AVG и Amon, уничтожает антивирусные файлы данных AVP.CRC, IVP.NTZ, ANTI-VIR.DAT, CHKLIST.MS, CHKLIST.CPS, SMARTCHK.MS, SMARTCHK.CPS, AGUARD.DAT, AVGQT.DAT; портит данные в файле LGUARD.VPS (антивирусная база данных?); не заражает файлы-антивирусы с именами: TB, F-, AW, AV, NAV, PAV, RAV, NVC, FPR, DSS, IBM, INOC, ANTI, SCN, VSAF, VSWP, PANDA, DRWEB, FSAV, SPIDER, ADINF, SONIQUE, SQSTART.
Одной из главных отличительных особенностей вируса является тот факт, что он шифрует системные библиотеки Windows (DLL-файлы). При этом используется механизм шифрования "на-лету" - при необходимости вирус расшифровывает тело библиотеки, а затем шифрует обратно. В результате библиотеки являются работоспособными только при наличии в системе резидентного вируса, а после удаления вируса из системы - остаются зашифрованными (примерно то же самое, что делает вирус Onehalf). Для шифрования библиотек вирус использует криптографическую систему, встроенную в Windows (Crypt API).
Вирус "несовместим" с некоторыми версиями Windows. При этом вирус либо не заражает KERNEL32.DLL и, соответственно, системную память, либо неспособен заражать PE EXE-файлы.
Инсталляция в систему
При первом запуске зараженного файла в незараженной системе вирус запускает свою процедуру инсталляции, которая заражает файл KERNEL32.DLL, находящийся в системном каталоге Windows. При заражении вирус правит таблицу экспортов KERNEL32 и устанавливает на свой код адреса нескольких функций работы с файлами (CreateFile, OpenFile, __lopen, CopyFile, MoveFile, MoveFileEx, LoadLibrary, LoadLibraryEx, FreeLibrary - как ANSI-функции, так и UNICODE).
В результате при следующей загрузке Windows код вируса остается в системной памяти как часть KERNEL32, и при вызове перечисленных выше функций управление передается на код вируса.
Вирус использует обычный для Win32-вирусов прием для того, чтобы записать свой код в файл KERNEL32.DLL (эта библиотека постоянна загружена в памяти и Windows блокирует запись в этот файл). Вирус копирует файл KERNEL32.DLL из системного каталога в основной каталог Windows, заражает эту копию и записывает команду "апдейта" в файл WININIT.INI. В результате при перезагрузке Windows уничтожает KERNEL32.DLL в системном каталоге и замещает его зараженной копией.
После заражения KERNEL32.DLL вирус возвращает управление программе-носителю.
Заражение файлов
При перезагрузке Windows код вируса оказывается загруженным в память Windows и получает управление при обращениях к файлам. При первом таком обращении вирус запускает процедуру размножения - эта процедура сканирует все доступные диски от C: до Z:, ищет на них PE EXE-файлы и архивы и заражает их.
Для того, чтобы замаскировать свою активность, вирус выполняет процедуру размножения в фоновом режиме и плюс к этому делает задержки при начале сканирования очередного диска.
При заражении PE EXE-файлов вирус увеличивает размер последней секции файла, шифрует себя полиморфик-методом и записывает результат в эту секцию, затем корректирует необходимые поля PE-заголовка. Стартовый адрес зараженного файла устанавливается на код вируса (на полиморфный расшифровщик).
При записи зараженных файлов в архивы вирус использует внешние утилиты архивации - создает зараженный EXE-файл и вызывает архиватор, который и добавляет вирусный файл к архиву. Зараженные файлы получают имена, случайно выбранные из списка:
INSTALL, SETUP, RUN, SOUND, CONFIG, HELP, GRATIS, CRACK, UPDATE, README
При этом к имени добавляется символ '!' - либо в начало, либо в конец имени.
Шифрование DLL-файлов
При инсталляции в систему вирус создает свой ключ шифрования (при помощи крипто-библиотеки Crypt API, встроенной в Windows). Используя этот ключ и перехват функций работы с библиотеками (LoadLibrary и FreeLibrary) вирус шифрует/расшифровывает DLL-библиотеки "на-лету".
Вирус не шифрует виблиотеки со стандартными именами: SFC, MPR, OLE32, NTDLL, GDI32, RPCRT4, USER32, RSASIG, SHELL32, CRYPT32, RSABASE, PSTOREC, KERNEL32, ADVAPI32, RUNDLL32, SFCFILES. Не шифруются также библиотеки, перечисленные в:
System\CurrentControlSet\Control\SessionManager\KnownDLLs
System\CurrentControlSet\Control\SessionManager\Known16DLLs
Вирус сохраняет свой ключ шифрования в системном реестре в ключе:
SOFTWARE\Microsoft\Cryptography\UserKeys\Prizzy/29A
и дает этому ключу имя: Kiss Of Death