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 (COM и EXE), EXE-файлы Windows (NE) и EXE-файлы Windows32 (PE). Также содержит блок, являющийся MDEF-ресурсом Macintosh - похоже, что это вирус умеет также заражать файлы операционной системы Mac OS. Однако переползание вируса с PC на Mac и обратно является крайне маловероянтым - при запуске зараженных DOS/Win-файлов вирус не обращает внимания на файлы Mac (если они вдруг оказались на PC). Похоже, что то же самое происходит и на Mac. Заразить другую OS вирус в состоянии, видимо, только если пользователь скопирует его "руками".При запуске зараженных 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
"Многоплатформенный" вирус - заражает документы MS Word и VxD-драйвера Windows. Заражение происходит поэтапно: вирус из зараженного документа переносит себя в PE EXE-файл, затем из PE-файла в VxD, и только затем - опять в документы. При открытии зараженного документа вирус создает на диске свой PE-дроппер и запускает его, PE-дроппер ищет и заражает VxD-файлы в каталоге Windows, при перезапуске Windows вирус из зараженного драйвера проникает в ядро Windows, перехватывает системные вызовы и заражает документы при их открытии:+----------+ +---------+ +---------+ +---------+ |Зараженный| --> |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
При запуске RUNME.EXE определяет каталог Windows, переходит в подкаталог SYSTEM и заражает там несколько 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 (в надежде на то, что кому-то нравиться запускать файлы с подобными именами?)
Заражение документов
При старте Windows95 и загрузке зараженных VxD-драйверов загрузчик вируса считывает свой основной код из файла-носителя (так же, как и при открытии зараженного документа) и выполняет его. При этом вирус перехватывает IFS API и обрабатывает открытие файлов. При открытии файлов с расширением DOC вирус проверяет их внутренний формат, записывает в них свой макрос AutoOpen и дописывает к файлу свой основной код. Документы также конвертируются в темплейты.При заражении вирус использует собственные подпрограммы обработки формата документов 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).
Прочие замечания
Вирус жизнеспособен только в среде Windows95 - по причине заражения VxD вирус неспособен размножаться на NT, а по причине "промежуточного" PE-дроппера вирус неспособен размножаться под Windows 3.xx. Под Windows95 вирус не вызывает практически никаких побочных эффектов, за исключением описанных выше проблем с Word.Вирус содержит строки текста, оставшиеся, видимо, от отладочной версии вируса:
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)