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

         

Технические детали


Червь представляет из себя файл HAPPY99.EXE размером точно 10.000 байт. Данный файл является стандартным выполняемым файлом Windows32 (PE - Portable Executable). Червь работоспособен под Win95/98, однако по причине ошибок не в состоянии заразить WinNT.

Червь содержит строки текста, часть из которых зашифрована:

Is it a virus, a worm, a trojan? MOUT-MOUT Hybrid (c) Spanska 1999. Happy New Year 1999 !! begin 644 Happy99.exe end \Ska.exe \liste.ska \wsock32.dll \Ska.dll \Ska.exe

При запуске файла управление передается на процедуру инсталляции червя. Червь копирует свой файл HAPPY99.EXE в системный каталог Windows под именем SKA.EXE и создает там же дополнительный DLL-файл SKA.DLL. Этот файл хранится в теле червя в упакованном и зашифрованном виде в сегменте данных.

Затем червь копирует файл WSOCK32.DLL в файл WSOCK32.SKA (делает "бэкап") и патчит код WSOCK32.DLL. Если в этот момент файл WSOCK32.DLL задействован системой и его непозможно открыть на запись, червь создает новый ключ в системном реестре и записывает в него команду авто-запуска своей копии при очередном старте Windows:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce=SKA.EXE

В файл WSOCK32.DLL червь записывает свою процедуру инициализации и меняет адреса двух экспортируемых функций. Процедура инициализации является достаточно короткой (всего 202 байта) и записывается в конец кодовой секции файла WSOCK32.DLL перед секцией данных. Поскольку в файле WSOCK32.DLL для этого достаточно места, его размер при заражении не увеличивается. Затем червь корректирует таблицу экспортов файла таким образом, что две функции "connect" и "send" указывают на код червя на два соответствующих перехватчика.

При обращении к ресурсам Интернет операционная система загружает WSOCK32.DLL, процедура инициализации активизируется и перехватывает два события: сетевое соединение и передачу данных. Червь обрабатывает два типа соединений: по портам почты и новостей (порты 25 и 119 - smtp и nntp).
В момент установки одного из таких соединений червь загружает свою библиотеку SKA.DLL, которая имеет две экспортируемые процедуры: mail и news. В зависимости от номера порта червь вызывает одну из этих процедур, однако обе они суть одно и тоже: обрабатывают заголовки посылаемых писем, запоминают адрес, на который отправляется письмо, и затем посылают на тот же адрес новое письмо с вложенным в него файлом HAPPY99.EXE. Червь также добавляет в служебный заголовок "зараженных" писем свой идентификатор:

X-Spanska: Yes

Червь также запоминает в файле LISTE.SKA в системном каталоге Windows все адреса, на которые расссылаются "зараженные" письма. Этот "лог-файл" имеет ограниченный размер и содержит до 5K данных, т.е. примерно до 200 адресов, на которые червь передал свои копии.

Демонстрации вирусных эффектов:

happy.gif

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