Win32.Apparition

Резидентный файловый NewEXE-вирус, заражающий PE-EXE файлы Windows32 (Windows95/NT). Является "близким родственником" Windows-вируса "Win.Apparition" и использует те же алгоритмы, приемы и имеет ту же структуру (код, упаковынные данные и т.д.). Различия между Windows и Windows32 версиями вируса следующие: "Win32.Apparition" написан на C (Windows-версия была написана на Pascal), не имеет активного (видимого) окна, выводит другие MessageBox-ы и содержит другие текстовые строки.

Как и свой Windows-прародитель, новый вирус портит файлы при их заражении - ищет в них коды начала C/Pascal-подпрограмм и записывает туда байты FFh,FFh,xxh (xxh - случайный байт). При работе таких программ Windows генерирует exception, вирус перехватывает его и самостоятельно обрабатывает эту ситуацию. В результате: 1) испорченные файлы работают только в зараженной системе; 2) невозможно гарантировать 100%-е восстановление вируса даже после исправления испорченных байт. Таким образом, все зараженные файлы должны быть уничтожены.





Win32.Cabanas this text was written by Peter Szor, Data Fellows Ltd

"Win32.Cabanas" является первым известным 32-битным вирусом, работающим под Windows NT, Windows 95 и Win32s. Обнаружен во второй половине 1997. Имеет длину всего около 3K. Содержит текст:

(c) Win32.Cabanas v1.0 by jqwerty/29A


Автор этого вируса тот же, что и у печально известного макро-вируса "Cap".

"Win32.Cabanas" является резидентным вирусом, однако время "жизни" резидентной части вируса ограничено временем работы зараженной программы - вирус не оставляет независимой процедуры, перехватывающей системные события и заражающей выполняемые файлы. Вместо этого вирус действует как часть зараженной программы и пользуется ее ресурсами (см. ниже). Вирус использует анти-эвристические и антиотладочные приемы, частично зашифрован/запакован, использует (впервые для Windows-вирусов) стелс-приемы.

При запуске зараженного файла "Win32.Cabanas" управление передается на тот же адрес, что и до заражения - вирус не изменяет адрес "точки входа" в файл, а записывает по этому адресу команду перехода на свою "точку входа" (JMP Virus_Code, как это делают некоторые DOS-вирусы).

Получив управление, вирус распаковывает и расшифровывает таблицу текстовых строк, которые являются именами Win32 KERNEL API, и затем ищет Base Address в KERNEL32.DLL. Для этого вирус при заражении файлов ищет в них адреса процедур GetModuleHandleA и GetModuleHandleW в Import Table и сохраняет необходимый указатель в списке ".idata". Поскольку системный загрузчик заполняет адреса этих функций при запуске зараженного файла, вирус автоматически получает их и использует в дальнейшем для своего распространения. Если же зараженный файл не содержит процедур GetModuleHandleA или GetModuleHandleW, вирус использует третий (недокументированный) способ вычисления Base Address KERNEL32.DLL (этот способ работает только под Win95 и не работает под NT).

Получив адрес ядра Windows32 и ModuleHandle, вирус такими же и другими приемами определяет адреса других системных функций - GetProcAddress, FindFirst, FindNext, FindClose, SetAttributes, CloseHandle и т.д. После этого вирус имеет все необходимое для своей работы.

Первым делом вирус заражает EXE-файлы как обычный нерезидентный вирус - ищет их в каталогах Windows, Windows System и в текущем каталоге. Процесс заражения происходит достаточно быстро - для ускорения работы с файлами вирус использует "memory mapped files" (новая функция обработки файлов в Windows32).

При заражении вирус проверяет длины файлов - если длина файла кратна 101, то такие файлы считаются зараженными (именно такие длины имеют все зараженные файлы). Вирус также не заражает файлы больших размеров. Заражаются файлы, имеющие расширение имени только EXE или SCR (screen saver). Затем вирус проверяет EXE- и PE-заголовки, ищет ссылки на импортируемые функции GetModuleHandleA, GetModuleHandleW, GetProcAddress и запоминает ссылки на них в секции ".idata".

Затем вирус переходит непосредственно к заражению файла: устанавливает у секции ".idata" характеристики MEM_WRITE, подсчитывает адрес "точки входа" в файле, записывает туда инструкцию "JMP Virus", которая указывает в конец файла, и дописывает к файлу свой код. Дополнительно вирус увеличивает размер последней секции (для этого правит ее заголовок). Вирус также проверяет и при необходимости правит "настраиваемые адреса" (relocation table) для того, чтобы при "настройке адресов" не оказалась испорченным 5-байтовая команда передачи управления "JMP Virus".

После заражения файлов вирус перехватывает функции API (т.е. остается "резидентно") и возвращает управление программе-носителю. Вирус перехватывает несколько функций, среди которых - FindFirstFileA, FindFirstFileW, FindNextFileA и FindNextFileW. При вызове этих функций вирус проверяет файл, к которому идет обращение. Если файл не заражен, вирус записывается в него описанным выше методом. Если файл заражен, вирус "показывает" уменьшенную длину файла - такую же, какая была до заражения. Таким образом вирус реализует свой "полу-стелс" алгоритм - заметить изменение длин невозможно. Более того, если программа, просматривающая файлы уже заражена, вирус записывается во все PE EXE-файлы, к которым идет обращение. Вирус также заражает файлы и при вызове других перехваченных API-функций обращения к файлам - CopyFile, SetFileAttributes, SetFileTime и т.д.





Win32.Cerebrus

Нерезидентный Windows32-вирус. Заражает Windows-файлы NE (Windows 3.xx), PE (Portable Executable), LX (Linear Executable), но размножается только под Windows32, поскольку имеет формат PE и импортирует Windows32-функции.

При запуске зараженного файла вирус получает управление, ищет в текущем каталоге EXE-файлы и записывается в их конец. Для передачи управления на свой код модифицирует не PE-заголовок заражаемого файла, а DOS-заголовок: вирус записывает туда свой адрес в зараженном файле. В результате зараженный файл имеет три блока: DOS stub, первоначальный PE (без изменений), код и данные вируса.

Вирус сам по себе имеет формат PE-файла: он содержит PE-заголовок, заголовки секций, таблицу импортируемых имен, секцию кода и данных. В зараженных файлах указатель на PE-заголовок указывает на вирус, в результате Windows32 при запуске зараженного рассматривает первоначальные данные файла как DOS stub и загружает код PE-блок вируса.

Для возврата управления файлу-носителю вирус создает копию зараженного файла (она имеет расширение .EVE), лечит и запускает ее. Вирус "забывает" удалить эту копию после запуска, поэтому на диске образуются вылеченные файлы-компаньоны.

При запуске вирус пищит спикером компьютера. Содержит строки, первый блок - список импортируемых вирусом функций KERNEL32 и USER32:


ExitProcess Beep GetCommandLineA CreateProcessA CopyFileA CreateFileA SetFilePointer ReadFile WriteFile CloseHandle FindFirstFileA FindNextFileA FindClose GetFileSize WinExec




MURKRY/IkX CEREBRUS The three head guardian, is in your computer, fear no more *.EXE