JAN FAKOVSKIJ,USSR,1997 Озаглавилась весна топором, Успокоилась река декабрем, Утро одиноким выстрелом JANKA DYAGILEVA безысходность
COM- и EXE-файлы заражаются стандартно - вирус записывает себя в их конец и модифицирует заголовок файла (адрес "точки входа" и т.д.). При заражении документов вирус разбирает их структуру (формат OLE2), преобразует документ в темплейт, создает область макросов и записывает туда макрос AUTOOPEN, содержащий загрузчик ("дроппер") вируса.
В DOS-файлах вирус является полиморфным - код вируса зашифрован и цикл расшифровщика восстанавливает его перед тем, как основные процедуры вируса получат управление. При инсталляции в память вирус использует достаточно сложный способ "опознания" своей уже загруженной в память TST-копии. Вирус открывает файл с именем "JANKA DYAGILEVA" и пытается прочитать оттуда некоторое количество данных. Если TSR-копия вируса отсутствует в системной памяти, DOS возвращает ошибку (файл отсутствует), и вирус устанавливает себя в системную память. Если же вирус уже в памяти, он эмулирует открытие этого файла и чтение из него, что и является признаком присутствия вируса в системной памяти.
Если запуск произешел не в окне Windows, вирус выделяет блок DOS-памяти, копирует себя в него и перехватывает INT 21h, 2Fh. Если же вирус запущен под Windows, он ищет в XMS-памяти код драйвера Virtual Memory Manager (VMM32.VXD) и патчит его. В результате вирус получает управление не только при вызовах функций DOS, но и при вызовах Windows. Затем вирус использует оба перехвата (стандарнтый DOS INT 21h и Windows VMM) для заражения файлов и своих стелс-процедур (работа с драйвером VMM написана не вполне корректно - при попытке запустить Windows вирус завесил мой тестовый компьютер с Windows95).
Затем вирус ищет в Environment строки "COMSPEC=" и "WinDir=", заражает файлы COMMAND.COM и/или WIN.COM и возвращает управление программе-носителю. Пользуясь перехватом функций DOS вирус затем заражает COM-, EXE- и DOC-файлы при из запуске (COM/EXE) или открытии. Вирус также перехватывает создание файлов и заражает их при закрытии. Является стелс-вирусом при чтении из зараженных файлов и при их поиске (FindFirst/Next). При этом также поддерживает не только стандартные вызовы DOS, но и функции работы с длинными именами файлов. При записи в зараженные файлы лечит их. Отключает стелс-функции при запуске архиваторов ARJ, ZIP, RAR, RAR20 и антивирусов AIDSTEST.EXE, WEB.EXE, DRWEB.EXE.
При открытии зараженного документа управление получает макрос AUTOOPEN. Код вируса в этом макросе создает временный NewEXE-файл, содержащий "дроппер" вируса, запускает его на выполнение и затем удаляет. "Дроппер" вируса ищет файлы COMMAND.COM и/или WIN.COM и заражает их.
9-го мая, 8-го и 30-го апреля вирус стирает случайно выбранные сектора на винчестере. При записи на диск текста, содержащего строки "г Любер" или "Б.ЕЛЬЦИН" вирус также стирает случайные сектора диска.
Esperanto.4733
При запуске зараженных DOS-файлов вирус перехватывает INT 21h и остается резидентно в DOS-памяти. Затем он заражает файлы при их запуске и при вызовах DOS-функций FindFirst/Next. При запуске зараженных Windows-файлов вирус не остается резидентно - он только ищет COM/EXE-файлы для заражения и затем возвращает управление программе-носителю.
При заражении файлов вирус проверяет их внутренний формат и заражает различными способами. При этом записывается в конец файлов и изменяет их заголовки. В Windows NE-файлах при этом создает новую секцию, а в Windows32 PE-файлах дописывается к последней секции.
При запуске зараженных Window32-файлов вирус проверяет системное время и в зависимости от его значения выводит MessageBox:
[Esperanto, by Mister Sandman/29A] Never mind your culture / Ne gravas via kulturo, Esperanto will go beyond it / Esperanto preterpasos gxin; never mind the differences / ne gravas la diferencoj, Esperanto will overcome them / Esperanto superos ilin.
Never mind your processor / Ne gravas via procesoro, Esperanto will work in it / Esperanto funkcios sub gxi; never mind your platform / Ne gravas via platformo, Esperanto will infect it / Esperanto infektos gxin.
Now not only a human language, but also a virus... Turning impossible into possible, Esperanto.
Содержит также строки, которые используются при заражении EXE-файлов Windows32:
KERNEL32.DLL USER32.DLL GetModuleHandleA GetProcAddress MessageBoxA CreateFileA CreateFileMappingA MapViewOfFile UnmapViewOfFile CloseHandle FindFirstFileA FindNextFileA FindClose LoadLibraryA GetLocalTime
Navrhar
+----------+ +---------+ +---------+ +---------+ |Зараженный| --> |PE EXE | --> |+---------+ --> |+---------+ --> |документ | |дроппер | ||VxD | ||+---------+ --> |Word | | | ||драйвер | |||Документы| --> | | | | || | |||Word | +----------+ +---------+ +| | +|| | +---------+ +| | +---------+
При заражении объектов различного формата их длина увеличивается на различные значения: документы - на 17245 байт, драйвера VxD - на 12288 байт, длина файла RUNME.EXE равна 16208 байт.
В документах Word и в VxD-драйверах вирус использует достаточно "красивый" способ хранения своего кода - вирус записывает в заражаемый объект лишь небольшую часть своего кода (загрузчик), а основной код дописывает в конец файла как совершенно независимый блок данных (типа оверлеев в DOS EXE-файлах). Этот блок данных никак не связан с основным кодом/данными зараженного файла - ни Word в зараженных документах, ни Windows при загрузке VxD не обращают на него никакого внимания и не грузят его в память.
Загрузчик вируса при этом является "легальной" компонентой объекта - это либо макрос и документах Word, либо 32-битная подпрограмма в VxD-драйверах. Этот загрузчик при запуске считывает основной код вируса из файла-носителя и запускает его.
Зараженный VxD: Зараженный документ: +--------------+ +--------------+ |Первоначальный| |Первоначальные| |код VxD | |данные | |--------------| |документа | |Загрузчик | <- 32-битная |--------------| |вируса | программа |Загрузчик | |--------------| |вируса | <- макрос |продолжение | +--------------+ <- конец документа |VxD (код и | |"оверлей" | <- основной код |данные) | | | вируса +--------------+ <- конец кода VxD +--------------+ <- конец файла |"оверлей" | <- основной код | | вируса +--------------+ <- конец файла
Наиболее "популярный" способ заражения вирусом на сегодняшний день - это не обмен зараженных программ, а получение зараженного документа. Поэтому с большой вероятностью вирус появится на компьютере в виде Word-документа с кодов вируса внутри. При заражении документов вирус записывает в них свой загрузчик в виде макроса с именем AutoOpen. Этот макрос является авто-запускаемым, и, соответственно, при открытии документа получает управление на себя. Код вируса в макросе AutoOpen создает файл C:\RUNME.EXE, считывает свой "оверлей" из конца документа, записывает его в RUNME.EXE и запускает его на выполнение.
Заражение VxD
EISA.VXD, FILESEC.VXD, ISAPNP.VXD, LOGGER.VXD, LPT.VXD, LPTENUM.VXD, MSMOUSE.VXD, MSSP.VXD, NWSERVER.VXD, NWSP.VXD, PARALINK.VXD, PCI.VXD, SERENUM.VXD, SERIAL.VXD, SPAP.VXD, SPLITTER.VXD, UNIMODEM.VXD, VFD.VXD, VGATEWAY.VXD, WSIPX.VXD, WSOCK.VXD
При заражении VxD вирус разбирает формат драйверов (которые являются LE-файлами, Linear Executable), модифицирует несколько полей LE-заголовка, меняет адрес "стартовой" подпрограммы VxD (Control_Proc_0) и дописывает свой код в конец секции кода VxD. Формат LE-файлов позволяет делать это, поскольку код и данные в LE-файлах расположены постранично. Если код/данные не заполняют страницу до конца, оставшееся место оказывается незанятым - именно туда и записывает вирус 214 байт своего загрузчика, если, конечно же, в странице кода есть свободное место.
После заражения вирус устанавливает у VxD-файла новую дату/время - 4-е января 1997, 4:28 утра. По этому идентификатору вирус определяет уже зараженные VxD-файлы.
Вирус не заражает никаких более VxD-драйверов, кроме как перечисленные выше, и только в каталоге SYSTEM. После заражения VxD вирус не удаляет свой файл RUNME.EXE (в надежде на то, что кому-то нравиться запускать файлы с подобными именами?)
Заражение документов
При заражении вирус использует собственные подпрограммы обработки формата документов Word. Эти подрограммы способны обработать не все возможные варианты документов, поэтому вирус заражает только документы размера до 800K и только PanEuro Word 6/7.
Поскольку Word не обращает внимания на "оверлей" вируса, то при сохранении на диск зараженного документа он "отрезает" основной код вируса, сохраняя при этом код макроса AutoOpen. Подобные документы в дальнейшем неспособны распространять вирус.
Процедура заражения документов собержит ошибки, в результате чего вирус делает невидимыми уже существующие в документе макросы (если таковые присутствовали). Более того, такие документы могут вызвать ошибки при работе в Word с выводом соответствующего сообщения:
This program has performed illegal operation and will be shut down.
То же самое происходит при попытках удалить макрос AutoOpen средствами Word (Tools/Macro/Delete или Organizer).
Прочие замечания
Вирус содержит строки текста, оставшиеся, видимо, от отладочной версии вируса:
can not find DDB fixupp can not infect this file not valid vxd file successfuly infected infecting file
Причие строки используются вирусом при заражении VxD-драйверов как имена Windows-процедур:
KERNEL32.dll CreateFileA ExitProcess GetFileSize GetFileTime GetProcessHeap GetVersion GetWindowsDirectoryA HeapAlloc ReadFile SetFilePointer SetFileTime WriteFile lstrcatA lstrcpyA CloseHandle
Прочие строки являются комментариями автора вируса на английском и "хакерском" языках:
HZDS virus (the world 1st direct VxD infector and the 2nd Word 6/7 infector) (c) Navrhar (DESIGNeR in english), Slovakia, 21-oct-97 Diz virus haz been written in Banska Bystrica city, Slovakia.
WфlЫ0mф ч0 чhф HZD$ vнйцs gйффчн0gZ рйфр ! GйффчZ: Vyv0jрй, ю0ыфй, ярsчy Ьрmфй & Ugly Ьцsфй, MGЬ, янghчmрйф 00kфй. $pфЫнрl GйффчZ: Тцчh0й 0Я Т0рйЫhy.6э93 (н wр0чфы ч0 сф 1sч, сцч чhф h000й сфl00gs ч0 y0ц - ц0Я0йчц0рчфly) Mр0y ЯцЫks g0фs ч0 ч0: HZD$, Vlры0 M.(DнЫчрч0й) $p00s0йфы сy *-Z1яю (чhф сфsч VX-Сн0ф фvфй)
Перевод второго блока выглядит примерно так:
Welcome to the HZDS virus greetings area ! Greetz: Vyvojar, Ender, Nasty Lamer & Ugly Luser, MGL, Nightmare Joker, Special Greets: Author of Anarchy.6093 (i wanted to be 1st, but the honor belongs to you - unfortunately) Many fucks goes to to: HZDS, V1ado M.(Dictator) Sponsored by *-Zine (the best VX-zine ever)