Мы и обернуться не успеем, а уже навалят больше прежнего...

А. и Б. Стругацкие. Град обреченный

Глава 4. Описание вирусов

Ниже приводятся результаты анализа алгоритма работы наиболее интересных и широко распространенных в России и странах бывшего СССР вирусов. Будут описаны вирусы, которые используют необычные методы заражения системы или проявляют себя в системе каким-либо экстраординарным способом.

Описания вирусов содержат строки, выводимые вирусами на экран компьютера или принтер. Некоторые из них имеют грамматические и/или стилистические ошибки, используют ненормативную лексику, жаргон и т. д. Для того чтобы каждый раз не заострять на этом внимание, следует отметить, что все сообщения приводятся в редакции их авторов.

В предлагаемый материал включены и некоторые из так называемых hoaxes — широко распространенных легенд про вирусы, которые на самом деле никогда не существовали. К ним относятся "сетевой вирус" GoodTime, строка "Choleepa" во втором секторе винчестера, "страшный вирус Time" и т. д.

Следует также отметить, что эта книга содержит примерно десятую часть от общего числа вирусов, описанных в электронной "Энциклопедии вирусов AVP". Остальные опущены по двум причинам: полный набор описаний всех известных вирусов чересчур велик для однотомного печатного издания, да и вряд ли покажется действительно интересным читателю. По тем же причинам не включен и каталог с основными краткими характеристиками всех вирусов, известных на сегодняшний день.

Тем, кто желает ознакомиться с полным каталогом или описаниями вирусов, не приведенных ниже, рекомендую воспользоваться "Энциклопедией вирусов AVP", которая распространяется бесплатно через станции BBS и WWW, или обратиться к ней в режиме on-line на Web-станции AVP: http://www.avp.ru.

Для того чтобы постоянно быть в курсе самых свежих новостей о компьютерных вирусах, рекомендую подписаться на Fido-конференцию AVP.SUPPORT или регулярно заглядывать на Web-сервер AVP.

4.1  Файловые вирусы

4.1.1. DOS-вирусы

AAV.8224

Очень опасный резидентный вирус. Перехватывает INT 10h, 13h, 16h, 21h и остается резидентно в памяти. В момент запуска файлов при вызове DOS-функции GetDiskSpace или при вызовах INT 10h (если при этом не выполняются прерывания DOS) вирус ищет .СОМ- и .ЕХЕ-файлы и записывается в их конец.

Особое внимание уделяет файлу C:\COMMAND.COM и заражает его методом, похожим на метод вируса "Peasant": записывает в начало COMMAND.СОМ 512 байт своего загрузчика, а остальную часть вируса и первоначальный код COMMAND.COM помещает в неиспользуемые секторы первого трека винчестера.

При запуске зараженного COMMAND.COM загрузчик вируса считывает код вируса из секторов винчестера, перехватывает прерывания и остается резидентно в памяти, затем восстанавливает код COMMAND.COM и возвращает ему управление. Такой способ заражения может испортить данные на диске. Плюс к этому вирус во многих случаях завешивает систему при заражении системной памяти, используя настолько хитрые способы перехвата и освобождения векторов прерываний, что часто портит ядро DOS.

В зависимости от системной даты, времени и некоторых других условий выводит сообщения на китайском языке или:

THIS F1LЈ MAY BE INFECTED WITH VIRUS TO KILL VIRUS, YOU CAN REINSTALL THIS FILE IDEARS AUTO_ANTI_VIRUS SOFTWARE GROUP AAV MARK:

AUTO ANTTV1RUS THIS FILE IS SAFE THANKS FOR USE AAV IDEARS AUTOANT)_V1RUS SOFTWARE GROUP MV MARK:

ABC.2378

Очень опасный резидентный полиморфик-вирус. Перехватывает INT 16h, ICh, 21h и записывается в конец ЕХЕ-файлов при обращениях к ним. В некоторых случаях записывает в файлы троянскую программу, которая при запуске стирает сектора первого и второго винчестера. Также стирает сектора дисков в зависимости от своих внутренних счетчиков.

Является одним из первых полиморфик-вирусов, в нем реализован довольно мощный алгоритм за/расшифровки основного тела: расшифровщик состоит из команд ADD, SUB, XOR, расположенных в произвольном порядке и довольно в большом количестве.

Проявляется начиная с 13-го числа любого месяца: при повторном нажатии на одну и ту же клавишу дублирует знак (т. е. вводимые символы "1001" будут заменены на "10001").

Содержит текст:

Ну теперь ты добрался и досюда. Я думаю, тебе интересно было посмотреть, как написан вирус. Но что ты будешь делать дальше? Если хочешь познакомиться со мной, то дай объявление в "Аиф", "7 дней" или в какой-нибудь компьютерный журнал/газету для автора вируса "ABC_FFEA11. А теперь пока. Minsk 8.01.92 АВС

Abola.2420

Очень опасный резидентный вирус. Записывается в начало СОМ-файлов и в конец ЕХЕ-файлов при их выходе в DOS (вызов Terminate INT 22h). Остается резидентно только при установленном драйвере XMS, правит код этого драйвера, перехватывает INT 2Fh и оставляет свою копию в UMB.

Использует довольно необычный способ заражения: при вызовах INT 2Fh сканирует блоки памяти, определяет среди них блоки, занятые программами, затем в PSP-блоках программ устанавливает адрес INT 22h (Terminate) на свой код. В результате по завершении работы программы передают управление не DOS, а вирусу, который определяет имя соответствующего программе файла и заражает его.

По вторникам вирус затирает диски строкой:

AbolaAbolaAbolaAbolaAbola

Асе. 1872

Очень опасный резидентный зашифрованный вирус. При запуске перехватывает INT 22h, возвращает управление программе-носителю, ждет окончания ее работы, затем трассирует и перехватывает INT 21h. После этого записывается в конец СОМ-файлов при их запуске и в OBJ-файлы при их открытии. Заражает только те OBJ-фай-лы, которые линкуются в ЕХЕ-файлы. При этом замещает точку входа на команду CALL_Virus.

Проверяет имена запускаемых файлов и не заражает файлы С*.* и W*.*. При запуске файлов W*.* проверяет системную дату ( System date) и в зависимости от ее значения уничтожает запускаемый файл, выводит текст и перезагружает компьютер:

This program wastes a tot of memory, SYSTEM HALTED...

Также содержит строки:

OBJ (С) Асе of Spades , Kiev-1995... Don't be a snub - enjoy yourself!

Alabama

Опасный резидентный вирус. Перехватывает INT 9 и 21h и поражает .ЕХЕ-файлы текущего каталога диска, с которого запускается на выполнение какой-либо файл или на котором открывается файл. При помощи функций FindFirst/Next вирус находит поражаемый файл, который не обязательно совпадает с открываемым или запускаемым файлом. При заражении вирус использует FCB-функции работы с файлами, дописывается в конец файла, возможно некорректное заражение. У зараженного файла устанавливается время последней модификации — 62 с.

"Выживает" при перезагрузке. Для этого устанавливает прерывание 9h (клавиатура), перехватывает нажатие клавиш Alt-Ctrl-Del, после чего гасит экран и вызывает процедуру загрузки (INT 19h). При этом коды вируса не стираются.

В зависимости от текущего времени может выдать на экран сообщение типа:

SOFTWARE CORES ARE PROHIBITED BY INTERNATIONAL IAW Box 1055 Tuscambia ALABAMA

Содержит текстовую строку "????????ЕХЕ". Не содержит деструктивных функций, но некорректно работает с файлами и памятью, из-за чего может завешивать систему.

Семейство Amoeba

АтоеЬа.1392

Неопасный резидентный вирус. Перехватывает INT 10h, ICh, 21h и записывается в начало СОМ- и конец ЕХЕ-файлов при их загрузке в память. Выводит на экран текст:

SMA KHETAPUNK - NOUVEL Band A.M.O.E.B.A. by PrimeSoft Inc

Amoeba.2367

Очень опасный резидентный полиморфик-вирус. Перехватывает INT 21h и записывается в конец СОМ- и ЕХЕ-файлов при их запуске или открытии. 21 марта и 1 ноября уничтожает информацию на винчестере. Содержит тексты:

Tosee aworid in a grain of sand, And a heaven in a wildftower Hold Infinity in the palm of your hand And Eternity in an hour.

"THE VIRUS 16/3/91 AMOEBA virus by the Hacker Twins (C)1991 Ttiis is nothing, wait for the release of AMOEBA 11-The universal infector, hidden to any eye but ours! Dedicated to the University of Malta - the worst educational system in the universe, and the destroyer of 5Х2 years of human life.

COMEXE

Семейство Anarchy

Anarchy.2048

Опасный резидентный "стелс"-вирус. Перехватывает INT 21h и записывается в середину или начало .СОМ- и .ЕХЕ-файлов при их закрытии. При заражении записывает себя в середину СОМ-файлов (если там есть область, содержащая постоянные байты) или в заголовок файла (в этом случае вирус сохраняет первоначальное содержимое заголовка в свободных секторах за телом файла (см. вирус "Beast"). При заражении файлов использует довольно сложный алгоритм обращения к недокументированным системным функциям. Иногда портит файлы при заражении. Содержит строки:

ГрОб

ANARCHY

ЯнъФаковсюй,и55Р,1994

Anarchy.6503

Неопасный резидентный полиморфик-"стелс"-вирус. Перехватывает INT 21h и записывается в конец СОМ- и ЕХЕ-файлов при обращениях к ним. При записи в зараженный файл вирус лечит его. Содержит/выводит строки:

COMMAND COMARJ.EXE PKZ1P.EXE CHKDSK.COM NCEDIT.EXE OLYMP.EXE UNE COL SIZE EOL EOF INS JAN FAKOvSKU,USSR,1995

Up with your shit, square sods! fuck! "Hu are u, hu am i, Is it real you touch the sky?" "Nothing the real for the sky", - said the birds of paradise. "I'm afraid, cant too see; Tell me where do u carry me?" "You will soon realize", - said the birds of paradise

UNFORG1VON

Anarchy .9382,9594

Неопасные резидентные вирусы. Anarchy .9594 — полиморфик-вирус. Перехватывают INT 9, 21h, 28h и записываются в конец СОМ- (кроме COMMAND.COM) и ЕХЕ-файлов при их запуске или закрытии. Заголовок зараженных СОМ-файлов содержит строку:

"Anarchy.9382": WAT EGOR LETOV!!!

•Anarchy.9594': JAN FAKOVSKU,USSR,1994

В конце зараженных файлов содержится незашифрованная строка:

UNFORGIVON

При 32-м заражении Anarchy.9382 и при 48-м заражении Anarchy.9594 выводят один из текстов (нецензурные выражения пропущены) и завешивают компьютер:

Anarchy.9382:

NEVOR FREE, NEVOR ME. SO I DUB THEE UNFORGIVON Anarchy.9594:

Словно после тяжелой и долгой болезни я вышел под серым, уютным дождем. Прохожие лепят меня, как хотят -

DIS IS Dl END, BEAUTIFUL FRIEND... DIS IS Dl END, MYONLYFRIEND-Dl END.

IT HURTS TO SET U FREE, BUT U'LL NEVOR FOLLOW ME. DIEND-

так же, как раньше. Я в мятой, потной пижаме,

но уже без претензий на белый полет. Скоро придет осень

OF LAUGHTER & SOFT UES,

Dl END OF NIGHTS...WE TIRED TO DIE...

DIS IS Dl END

I WANNA DESTROY DA PASSORS-BY

•CAUSE I

WANNA BE,-

YEAH,-ANARCHY

В ельцинской стране -С каждым часом дальше - круче:

Если я еще живой - УБЕЙ МЕНЯ, любер! Я еврей - УБЕЙ МЕНЯ, член общества "память"! Всех горбатых да больных исправит могила, Всё в порядке,

При нажатии на Alt-GreyMinus вирусы вызывают довольно забавный эффект: выводят меню типа Norton Commander и позволяют копировать, удалять файлы и подкаталоги и т. д. Примерное меню показано на рис 4.1.

Рис. 4.1

Меню типа Norton

  I——3584000 3670016 4
Commander   DOCUMENT.DOC 738 Arc
    RUNME .BAT 10 Arc
    DOCUMENT.BAK 256 Arc
    EDITOR .СОМ 62464 Arc


Вирусы содержат также и другие строки, используемые при заражении файлов и при вызове эффекта:

Anarchy.9382:

R/0 Arc Sel < DIR > SELECTED FILE(S) DISKFREE= DISKSIZE= FllЈS= KEYS:F1-ATrRIBUTES,F2-RESCAN, F3-PATH,F4-EDIT,F5- COPY.F6-RENAME/MOVE,

F7-MAKE,F8-DELETE,F9-UNINSTALL,F10-QUIT READ/ONLY: ARCHIVE: YES NO SAVE OFFSET UNE COL SIZE EOL EOF INS F1 -RESTORE F2-SAVE F3-LOW F4-HIGH F5-COPY F6-MOVE F7-F1ND FB-CUT F9-DEL F10-QUIT YESNOCUT ? FILE NOT SAVED.SAVE ? WAIT KILL ?! ALREADY EXISTS! OVERWRITE ? COPY MOVE OR RENAME MAKE ENTER NEW PATH: INT 24 FATAL ERROR RETRY ? FUNCTION ERROR <F1 > TO RESUME DISK FUU-

Anarchy.9594:

R/OArcSeKDIR>

SELECTED F1LE(S)

COMMAND COMARJ.EXE PKZIP.EXE CHKDSK.COM

OFFSET

UNE COL SIZE

EOL EOF INS

YESNO

ERROR DISK FULL

Семейство Andryushka

Очень опасные резидентные полиморфик-вирусы. Записываются в конец СОМ- и ЕХЕ-файлов, кроме COMMAND.COM. При старте зараженного файла ищут и заражают файлы в каталогах диска, затем перехватывают INT 21h, остаются резидентно и заражают файлы из своих TSR-копий при их открытии, выполнении, переименовании и т. д.

Andryushka.3536 при заражении переводит ЕХЕ-файлы в СОМ-формат (см. вирус "VACSINA"). Вирус внедряется в середину файла, при этом та часть заражаемого файла, куда записывается вирус, шифруется и помещается в конец заражаемого файла.

Вирусы достаточно сложно работают с обработчиками прерываний: сохраняют в своем теле часть обработчика INT 25h, а на освободившееся место записывают свой код (вызов INT 21h). При вызове INT 25h восстанавливают первоначальный обработчик INT 25h.

Организуют счетчики в загрузочных секторах дисков и в зависимости от их значения могут уничтожить несколько секторов на диске С:. При этом проигрывают мелодию и выводят на экран текст:

Hello!!!

My name is Andryushka

I come from Perm, USSR

Также содержат текст "insuffisient memory".

Ansi.881

Очень опасный нерезидентный вирус. При запуске ищет .ANS-файлы (по маске *.ANS) и записывается вместо них. При выводе зараженного файла на экран (если установлен драйвер ANSI) вирус пытается переименовать зараженный файл в СОМ и запустить его. Затем вирус выводит картинку.

Семейство Anti-AVP

Опасные вирусы записываются в конец файлов. Портят файлы данных AVP: создают новые базы AVP в формате версий 2.х (код и данные этих баз хранят в своем теле) и запиcывают их имена в файл AVP.SET (список баз AVP). В результате AVP версии 2-х либо неправильно определяет имена вирусов, либо не находит вирусов, либо портит файлы.

Anti-AVP.959

Нерезидентен. Ищет СОМ-файлы и файл C:\DOS\FORMAT.COM и заражает их.

Записывает в файл AVP.SET строку "KRN386.AVB", затем создает файл KRNL386.AVB и записывает в него базу AVP. База содержит записи, подобранные таким образом, что AVP при сканировании не определяет ни одного вируса и уничтожает файлы F-*.*, TBSCAN*.* и SCAN*.*.

Вирус содержит строки:

AVp.SeT KRN386.AVB

kRn386.aVb *.c0m c:\DoS\fORmaT.cOM

[AVP-Aids,Tcp/29A]

AVP Aids!

Anti-AVP.1235

Резидентен, перехватывает INT 21h и записывается в запускаемые СОМ-файлы.

Добавляет в AVP.SET строку "BIZATCH.AVB", создает этот файл и записывает в него базу AVP. В результате AVP детектирует вирус Win95.Boza под именем Bizatch_:P.

Вирус содержит строки:

[AntiCARO, by Mister Sandman/29A]

Please note: the name of this virus is [AntiCARO]

written by Mister Sandman of 29A...

but... dear Bontchy... name it however *you*

(and not CARO) want, as usual;

we just don't mind your childish stupidity:)

avp.set BIZATCH.AVB

bizatch.avb

Bizatch_:P

Fuck you, Bontchy

AntiwlnJI.2320

Опасный резидентный зашифрованный вирус. Трассирует INT 21h, перехватывает INT 9, 21h, 2Fh и записывается в конец .ЕХЕ-файлов при их запуске. Сравнивает имена файлов со строкой (по 4 символа на имя)

DRWEAIDSMSCAANT1AVP WEB SCANMSAVVSAFGUARADINKRNLDOSXWSWADSWAW1N3

и не заражает некоторые антивирусы и утилиты. Использует динамическую рас/зашифровку своего кода, для этого временно перехватывает INT 1. Содержит ошибки и иногда завешивает компьютер при заражении файлов.

В некоторых случаях изменяет вводимые с клавиатуры символы. При инициализации Windows (INT 2Fh AX-1605h) в зависимости от системного таймера выводит текст и завешивает компьютер:

Use registered copies of MS Windows

Вирус также содержит строки:

Greetings from MrStrange, Kiev T.G.Shevchenko University >Antiwin<, (c) by MrStrange.

Первая копия вируса (авторский оригинал) также содержит строку:

MrStrange hails you from Kiev! My first virus

Apo.2108

Очень опасный резидентный зашифрованный вирус. Перехватывает INT 21h и записывается в начало .СОМ- и конец .ЕХЕ-файлов при их запуске. При заражении временно переименовывает файл в имя Х$Х$$Х$Х.$Х$.

При заражении .ЕХЕ-файлов вирус корректирует размер заголовка файла таким образом, что первоначальное содержимое файла оказывается внутри заголовка. В результате файл включает только заголовок и тело вируса. При запуске такого файла DOS загружает только тело вируса, вирус исправляет заголовок программы-носителя, запускает ее, а затем восстанавливает "зараженные" значения полей в ЕХЕ-заголовке.

Вирус также перехватывает INT ICh и спустя некоторое время стирает сектора дисков. Вирус содержит ошибки и при некоторых условиях "вешает" систему. Имеет зашифрованную строку:

ApoVir

Семейство Apparition

Опасные резидентные файловые вирусы.

Apparition.254, 700

Копируют себя в видеопамять по адресу ВАООЮООО (это может привести к краху системы), перехватывают INT 21h и записываются в конец СОМ-файлов при их запуске.

Apparition.254 зашифрован. Apparition.700 перехватывает также INT 10h и запрещает смену видеорежимов (функцию INT 10h, АН-0). При переходе в подкаталог вирус ищет СОМ-файлы и записывается в них так же, как и при их запуске. Содержит строку:

THE APPARITION Apparition. 1248

Опасный резидентный вирус. Перехватывает INT ICh, 21h и записывается в конец запускаемых СОМ-файлов. При смене текущего каталога ищет СОМ-файлы и заражает их. Запускает системные часы на обратный ход: при каждом вызове INT ICh уменьшает системный счетчик времени. Включает ошибки и при некоторых условиях завешивает систему. Содержит строки:

The Apparition virus, written by ********************************. It's a second version of *****************************. THE APPARITION

Apparition.7035

Опасный резидентный полиморфик-вирус. Зашифрован как в файлах, так и в системной памяти. Активно использует 386-е инструкции и работает только на процессорах 386 и выше. Использует большое количество антиотладочных приемов, часть которых основана на особенностях процессора i386.

При запуске зараженного файла вирус расшифровывает свой код несколькими полиморфик-циклами и инсталлирует себя в системную память. Для противодействия отладчикам вирус временно перехватывает INT 1, 6, ODh, 34h и выполняет несколько довольно сложных антиотладочных процедур. Вирус также ищет в памяти какую-либо программу (резидентный антивирус?) и правит ее код.

Затем вирус освобождает перехваченные прерывания, выделяет себе блок памяти, копирует туда свой TSR-код, перехватывает INT 6, 9, 10h, ICh, 21h, 2Fh, 77h и остается резидентно в памяти. Перед тем как возвратить управление программе-носителю, вирус ищет СОМ- и ЕХЕ-файлы и заражает их.

Вирус перехватывает INT 10h, но никак его не использует. INT 77h перехватывается только для определения своей TSR-копии и предотвращения повторного заражения памяти. Перехват INT 2Fh используется для детектирования вызова MS-Windows AX"-1605hi в этом случае вирус удаляет себя из памяти.

Перехватывает несколько функций INT 21h. При вызове Keep (AH=31h) вирус присоединяет свой код к программе, которая остается резидентной. При вызове Execute (AX=4BOOh) вирус заражает запускаемый файл. При вызове ChangeDir вирус ищет СОМ- и ЕХЕ-файлы и заражает их.

При запуске файла LOGIN.EXE вирус активизирует свою процедуру взлома паролей: запоминает символы, вводимые с клавиатуры (для этого вирус перехватывает INT 9). Затем вирус сохраняет их в файле C:\RUSSIAN.FNT по окончании работы LOGIN.EXE (INT 21h, AH=4Ch).

Вирус записывает себя в СОМ- и ЕХЕ-файлы длиной меньше 55 Кб. Не заражает файлы: COMMAND.COM, "HIEW.EXE и •ЕВ.ЕХЕ. При заражении ЕХЕ-файлов конвертирует их в формат СОМ.

При заражении файлов вирус ищет в их коде заголовки C/Pascal-подпрограмм

55 PUSH BP 8В ЕС MOV BP.SP

и записывает вместо этого кода байты FFFFh. Если такая процедура получает управление, процессор генерирует INT 6 (Unknown Opcode), управление перехватывается обработчиком INT 6 в вирусе, который восстанавливает этот код и возвращает управление прерванной процедуре. В результате такие файлы практически невозможно вылечить, но они остаются работоспособными под зараженной системой, если не установлены memory managers типа QEMM. Если установлен QEMM или аналогичная утилита управления памятью, то вирус не получает управления по INT 6.

Для того чтобы защитить свой TSR-код от деактивации, вирус подсчитывает CRC-суммы своих трех основных процедур (заражение, INT 9 и INT 21h) и при каждом вызове INT ICh проверяет их. Для защиты кода своего обработчика INT ICh вирус хранит его резервную копию и при каждом вызове INT 9 сравнивает ее с оригиналом.

Под отладчиком или в том случае, если не сошлись CRC-суммы, вирус стирает CMOS, спикер компьютера пищит и система зависает.

При инсталляции вирус проверяет тип процессора и, если процессор ниже 386, выводит текст:

386 or later processor missing. Please replace processor, then press any key...

Также иногда сообщает:

Warning : Tnis file is infected by Apparition !

Также содержит строки:

Here I am, сап you see me Passing through, on my way To a place I'd been to only in my dreams ...before *.COM *.EXE C:\RUSSIAN.FNT

THE APPARITION

THE APPARITION II

Multilayer Coder v 2.00. Jul'96

Семейство April 1st (SURIV)

Опасные резидентные вирусы. Перехватывают INT 21h и заражают запускаемые файлы. При создании своей резидентной копии используют часть схемы вируса "Jerusalem"

Aprillst.COM

Записываются в начало .СОМ-файлов (кроме COMMAND.COM), запускаемых на выполнение. Опасны, так как не проверяют длину файлов. При заражении:

— создают файл ТМР$$ТМР.СОМ;

— записывают в него свою копию;

— дописывают в него заражаемый файл;

— уничтожают заражаемый файл;

— переименовывают ТМР$$ТМР.СОМ в имя заражаемого файла. April Ist.COM.a проявляется с 1 апреля 1988 г. при заражении файлов. Выводит на экран:

APRIL 1 ST НА НА НА YOU HAVE A VIRUS и завешивает систему. В последующие дни сообщает:

YOU HAVE A VIRUS!!

5 июля April lst.COM.b2 выводит:

ENGUSH SUCKERS DIE IN BUENOS AIRES!

Вирусы семейства содержат строки:

COMMAND.COM ТМР$$ТМР.СОМ

"Aphl1st.COM.a":sURR/1.01 "Aprillst.COM.b": Suriv 4.02 "April 1st.COM.b2": cOc«!sUcKrl MADE IN ARGENT1NA91

ApriHst.EXE

Поражает .ЕХЕ-файлы. Опасен, не вполне корректно работает с длиной файла. При заражении внедряется в середину файла между заголовком (EXE header) и загружаемым модулем, при этом вирус:

- создает файл ТМР$$ТМР.ЕХЕ;

— считывает из заражаемого файла первые 1ВЬ байт заголовка, модифицирует в них байты, соответствующие длине модуля, стартовым значениям CS, IP, SS, SP, контрольной сумме файла (устанавливается значение 1984h); затем записывает модифицированный заголовок в файл ТМР$$ТМР.ЕХЕ;

— копирует из заражаемого файла в ТМР$$ТМР.ЕХЕ таблицу настройки адресов (ТНА), модифицируя ее описанным ниже способом;

— дописывает к файлу ТМР$$ТМР.ЕХЕ копию вируса и загружаемый модуль инфицируемого файла;

— уничтожает заражаемый файл и переименовывает ТМР$$ТМР.ЕХЕ в имя заражаемого файла.

Поскольку загружаемый модуль файла при заражении смещается на расстояние, равное длине вируса, то вирусу приходится производить соответствующие изменения в ТНА: у каждого элемента ТНА содержимое байтов, соответствующих смещению сегмента, увеличивается на значение, равное длине вируса в параграфах (см. рис. 4.2).

Рис. 4.2

Смещение в зараженном файле

41.jpg

Начиная с 1 апреля 1988 г. при активизации расшифровывает (XOR FFh) и выводит текст:

APRIL 1ST НА НА НА YOU HAVEAVIRUS

и завешивает систему. В последующие дни текст не появляется, но вирус перехватывает INT ICh и завешивает систему приблизительно через 55 минут после активизации. Содержит строки:

sURIV ТМР$$ТМР.ЕХЕ

Aprillst.AntiD

Перехватывает INT 9 (клавиатура), ждет 32-го нажатия на клавишу D. После этого клавиша D "немеет": код этого знака не попадает в буфер клавиатуры.

ArjVirus

Опасный нерезидентный вирус-червь (worm). Ищет архивные файлы *.ARJ и добавляет в них свою копию. Ищет ARJ-файлы в текущем и во всех родительских каталогах.

Если архивный файл найден, вирус создает временный файл-червь с расширением .СОМ и случайно выбранным именем, например BHPL.COM, NLJJ.COM, OKPD.COM и т. д. Длина имени равна четырем байтам. Затем вирус записывает себя в этот файл, добавляет мусор (чтобы файл-червь был различной длины в разных случаях поражения архивов).

Этот файл-червь добавляется к тем файлам, которые уже упакованы в обнаруженном архиве. Вирус делает это при помощи самого архиватора ARJ: запускает копию процессора COMMAND.COM с указанием имени файла для выполнения. Строка, которая передается функции ЕХЕС, выглядит следующим образом:

c:\command.com /с arj a <arj-fite> <filename>.com

где а — параметр архиватора ARJ.EXE, при этом файл будет добавлен к уже упакованным файлам; <arj-file> — имя обнаруженного файла-архива; <filename> — имя файла-червя.

Параметр /с предписывает командному процессору COMMAND.COM выполнить указанный файл (ARJ.EXE) и отдать управление вызвавшей программе.

Затем вирус уничтожает временный файл и ищет следующий ARJ-файл. Если таковых больше нет, он возвращается в DOS.

Семейство AsmVir

Вирусы AsmVir ищут .ASM-файлы в текущем каталоге и записывают вместо них свой шестнадцатеричный дамп. Для того чтобы этот дамп мог быть потом скомпилирован, вирусы "окружают" его командами ассемблера:

;- <- идентификатор заражения

casmseg segment

assume cs:casmseg,ds:casmseg,ss:casmseg

org 100h

.radix 10

start:

db... <- дамп вируса db...

casmseg ends end start

Результатом компиляции и компоновки таких ASM-файлов являются вполне работоспособные копии вируса.

Вирусы содержат текст-копирайт:

ASMVirus by Qark/VlAD042

Семейство Atas

Неопасные нерезидентные (кроме Atas.1268) вирусы. Часть кода вирусов зашифрована. При старте заражают СОМ-файлы текущего каталога. После заражения могут вывести фразы: "ОК." или "I like to travel...". Содержат текст: "*.СОМ" и

"Atas.384": ATAS(Kiev) V3.03 Сг.91.10.11 •Atas.400": ATASVO.1 Cr.24.01.92

"Atas.1268": ATAS Corporation.(C)Copyright (B)BadWare

"Atas.1268" резидентен, при нажатии на клавишу PrintScreen осыпает символы на экране. Перехватывает INT 5, 21h.

Atas.3215, 3233, 3321

Неопасные резидентные зашифрованные "стелс"-вирусы перехватывают INT 8, 10h, 16h, ICh, 21h и записываются в конец СОМ-файлов при доступе к ним. Эти вирусы содержат текстовые строки:

bye

music

letters

isplay

Bye-Bye.

ATAS Corporation.(B)1992 ,V1 Created in the Kiev by ATAS.

Вирусы перехватывают вызов клавиатуры и сравнивают вводимые слова со словами из списка: bye, music, letters, isplay. В том случае, если введено одно из этих слов, вирусы:

music — проигрывают мелодию;

letters — осыпают знаки на экране;

isplay — меняют положение курсора на экране;

bye — выводят текст Вуе-Вуе. и удаляют из памяти TSR-часть вируса или резидентную часть.

Семейство Avatar

Очень опасные вирусы, в зависимости от текущей даты стирают сектора дисков. Содержат строки:

"Avatar.Acid.670,674": [Binary Acid](c) 1994 Evil Avatar "Avatar.Acid.7361': Virus ANuBiS v.1.0 (с) 1994 'гиъб!

Realizado en Argentina [AVRL]

This is only the beginning...

"Avatar.BigBang.346": [Big Bang](c) 1993 Evil Avatar *.COM "Avatar.Positron.512": [Positron] (c) 1994 Evil Avatar

Avatar.Acid

Резидентны, перехватывают INT 21h и записываются в конец запускаемых СОМ- и ЕХЕ-файлов. По понедельникам стирают случайно выбранный сектор диска.

Avatar.BigBang.346

Нерезидентен, при запуске ищет .СОМ- и .ЕХЕ-файлы и записывается в их конец. 1 января стирает MBR.

Avatar.Dichotomy.863

Опасный резидентный вирус. Перехватывает INT 21h и записывается в конец файлов при их запуске. Корректно заражает только СОМ-файлы, при поражении ЕХЕ-файлов портит их.

Вирус делит запускаемые файлы на две категории: четную и нечетную (в зависимости от того, в какой последовательности выполняются эти файлы) и заражает файлы разных категорий различными способами. Вирус разделяет свой код на две части и записывает первую часть только в четные файлы, а вторую часть — в нечетные файлы. Четные файлы заражаются обычным способом: вирус дописывает к ним свою первую часть (296 байт) и изменяет начало файла на команду JMP Virus. К нечетным файлам вирус дописывает свою вторую часть (567 байт) без изменения заголовка файла.

При запуске четного файла вирус ищет нечетный файл (его имя сохраняется в первой части вируса при заражении), считывает свое продолжение и остается резидентно в памяти.

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

Вирус содержит строки:

[Dichotomy] (с) 1994 Evil Avatar [Dichotomy]

Avatar.KJRad

Неопасный резидентный вирус. Перехватывает INT9, 21h и записывается в конец запускаемых ЕХЕ-файлов. Используя перехват, INT9 меняет на экране буквы, вводимые с клавиатуры. Содержит текст:

Made in the USA [k-rad] by Evil Avatar

Avatar.Positron

Опасный резидентный вирус. Перехватывает INT 21h и записывается в конец СОМ-файлов при их запуске. При заражении файлов не изменяет их заголовка, а записывает команду JMP_Virus в середину файла вместо первого вызова INT 21h, если таковой присутствует в файле. Для этого пропускает DOS-функцию Execute, ждет первого вызова INT 21h, вычисляет адрес в файле, откуда идет этот вызов, и записывает по этому адресу команду JMP_Virus.

Вирус может испортить некоторые (например, упакованные) файлы, которые затем завешивают систему при запуске.

Семейство Aw

Неопасные нерезидентные вирусы. Ищут СОМ-файлы и записываются в их начало. Если файл оказывается уже пораженным одним (или несколькими) из вирусов Vacsina, Yankee, Jerusalem, Cascade и некоторыми другими, Aw выводит соответствующее сообщение. Вирусы Aw содержат строки:

Aw.1667:

Warning! In file [FILfNAME] may be virus.

The AW version 1.09, Copyright (С) 1991 AW109:1 am check 80+ viruses Thank's Yankee Doodle for original INT 21 h "Aw.2300":

The AW version 1.12, Copyright (C) 1992

(ARV)

*.com

AW Warning! In file fitename.ext may be virus.

AW Warning! In system area may be virus.

AW Warning! In system may be virus.

AW=off

"me AntiVirus Virus version 1.12

AW112:1 am check 200++ viruses

Thank's Yankee Doodle for original vectors

Семейство Badboy

Неопасные резидентные вирусы. Перехватывают INT 21h и записываются в начало .СОМ-файлов при их запуске на выполнение. Состоят из девяти блоков кода (блок инсталляции, блок данных, блок обработчика INT 21h и т. д.). При инсталляции в память восьми из этих девяти блоков могут быть переставлены местами в произвольном порядке. При поражении файла вирус записывает в файл копию своей резидентной части (см. рис. 4.3), т. е. расположение блоков в инфициированных файлах будет различным.

Рис. 4.3 Запись в файл копии резидентной части вируса

42.jpg

При доступе к файлам используют System File Table. Badboy. ЮОО.а при десятом заражении сообщает:

The bad boy halt your system... и действительно завешивает компьютер. Остальные вирусы семейства содержат строки:

Badboy.991: Cure_ME_DANIEU

ANT1 CRI I HOPE YOU BURN IN HELLASSHOltS Badboy. 1000.a: The Bad Boy virus, Copyright (C) 1991. Badboy.lOOO.c: Pile of shit

The Worthless Piece of shit virus that is a joke. Badboy. 1001: Make me better!

The Bad Boy virus, Version 2.0, Copyright (C) 1991 Badboy. 1001 .b: The MRMS boy halt your system...

The Bad Boy virus, Copyright (C) MRMS. Badboy. 1074: The Worthless Piece of shit vi-rus that is a joke Badboy.Lubec: Lubec II ACME93

Microsoft MS-DOS 6062PTCH ,(c) Microsoft 93.ACME 93 BadBoy.MadSatan.a:

1994 By ( Mad Satan ) in TAIWAN

1994 Satan Virus By [Mad Satan] Ver 4.0 BadBoy.MadSatan.b:

Make me better!

1994 Stan Vims by [ Mad Satan ] in TAIWAN. Ver 4.01 Badboy.Rtot: Senseless Destruction... Protecting what we are

joining together to take on the worid..

METAL MiUTiA [IMMORTAL RiOT]

Семейство Baran

Резидентные полиморфик-вирусы. Перехватывают INT 21h и записываются в конец СОМ- и ЕХЕ-файлов. Вагап.3294 заражает файлы при их запуске или закрытии. Вагап.4968 также заражает запускаемые и закрываемые файлы, но делает это еще и при вызове FCB-функции закрытия файлов.

Перехватывают INT 21h нестандартными способами. Обработчик INT 21h в вирусе Вагап.3294 содержит всего одну команду — вызов INT I (CDh Olh). Вирус также перехватывает INT 1, и управление в результате передается на обработчик INT 1 в теле вируса. Этот обработчик содержит подпрограммы заражения файлов.

Вагап.4968 трассирует INT 13h, 21h, записывает в код INT 21h в области DOS (первоначальный DOS-обработчик INT 21h) вызов INT 29h (CDh 29h), затем записывает в код обработчика INT 29h команду FARJMP_Virus. В результате в код вируса попадают вызовы INT 21h и INT 29h. Вирус проверяет адрес вызвавшей программы и передает управление либо на первоначальный обработчик INT 29h, либо на подпрограмму обработки вызовов INT 21h. Если вирус не может перехватить INT 21h таким способом, то он заражает командный процессор (COMMAND.COM), на который указывает системная строка COMSPEC=.

Если загружена MS Windows, то вирус также заражает файл, который запускается при выходе из Windows.

Вагап.4968 является "стелс"-вирусом. При открытии зараженного файла (FCB или Handle), при его загрузке как оверлея (Overlay) или отладке вирус лечит файл. Вирус также проверяет имена файлов и не заражает IBMBIO.* и IBMDOS.*.

Вагап.3294 неопасен. В зависимости от системного времени выводит текст:

Gwadera to baran!

Baran.4968 очень опасен. В зависимости от своего счетчика портит данные, записываемые на диск. Содержит строку:

Unknown destroyer v1

Семейство Barrotes

Очень опасные резидентные вирусы. При запуске поражают файлы C-COMMAND.СОМ. Затем перехватывают INT 21h и поражают СОМ- и ЕХЕ-файлы при их выполнении. Содержат строку "c:\command.com". 5 января стирают MBR винчестера, перехватывают INT ICh, выводят на экран несколько вертикальных линий и текст:

Virus BARROTES рог OSoft

Barrotes.849 поражает только СОМ-файлы.

Barrotes. 1310.d не портит MBR. Использует команду процессора i386. Выводит текст: "Virus MIKELON рог MSoft".

3 марта Barrotes.1461 шифрует сектора диска и выводит текст:

This is virus RETRETE! Don't attempt to recover your disk yourself!

Barrotes. 1463 безуспешно пытается вызвать видеоэффект, содержит зашифрованную строку:

ViRUS de G.D.R. (с)Ри1о80ЯТ, NO HAY NADACOMO G.D.R. ии VERDAD ?? ;-) Barrotes. 1874 проигрывает мелодию.

Barrotes. Tecla. 1303

Неопасный резидентный зашифрованный вирус. Перехватывает INT 21h и записывается в конец СОМ- и ЕХЕ-файлов при их запуске. При инсталляции поражает файл COMMAND.СОМ. 23 сентября перехватывает INT 16h и изменяет скан-коды вводимых символов. Также содержит строки:

C:COMMAND.COM Sta Tecla (MAD1) ST

Вирусы на командном языке DOS

ВАТ.Combat

Безобидный нерезидентный ВАТ-вирус. При запуске ищет .ВАТ-файлы в текущем и родительском каталогах, в каталогах С:\, C:\DOS, C:\WINDOWS и записывается в начало обнаруженных файлов.

Использует "бинарный" способ — код вируса исполняется и как batch-команды, и как СОМ-файл (см. вирус "Batman"). С помощью этого приема вирус получает доступ к DOS-функциям (INT 21h). Для того чтобы запустить себя как СОМ-файл, вирус копирует себя во временный файл С:\СОМВАТ.СОМ и вызывает его.

Содержит строки:

* ComBat * Rajaat / Genesis ComBat.TMP

BAT.HexVirus

Безобидный нерезидентный ВАТ-вирус. Ищет .ВАТ-файлы в текущем и родительском каталогах, затем записывается в их конец. Основной код вируса в зараженных файлах содержится в виде шестнадцатеричного дампа (результат работы какого-то паковщика HEX-to-ASCII). При запуске вирус создает на диске временный СОМ-файл, записывает туда распаковщик ASCII-to-BIN, распаковывает свой основной код и выполняет его.

Вирус содержит строку:

HexVirus! BAT.Highjaq

Неопасный вирус-червь. Записывает себя в .ВАТ-файлы в архивы формата ARJ и системные драйверы. Нерезидентен (т. е. не содержит резидентного кода, который заражает файлы), но если вирус загружен в память как системный драйвер, то перехватывает INT 8, 21h и остается резидентно в памяти.

Код вируса состоит из двух частей. Первая часть — текстовые строки, которые выполняются при запуске вируса как ВАТ-файла, вторая часть содержит двоичный код, выполняемый при запуске вируса как СОМ-файла или системного драйвера.

Текстовая часть вируса выглядит следующим образом (метки являются также командами передачи управления, если вирус запущен как двоичный выполняемый файл):

::pFqD

@cttynul

copy/b %0.bat+%0 c:\q.com

dir \*.arj/s/b¦c:\q.com/i

:qlp)

if errorievel 1 goto qWpU

ren c:\q.com UMKQYGWK.5KA

echolNSTAliHIGH=C:\UMKQYGWK.5KA»c:\config.sys

:qWpU

for %%a in (%0 %0.bat) do if exist %%a set q=%%a

del c:\q.com

cttycon

@del %q%

При запуске такого кода из ВАТ-файла вирус копирует себя в файл C:\Q.COM (третья строка). Этот файл является "дроппером" (dropper) вируса, используемым для заражения других файлов.

Затем вирус запускает команду DIR, которая ищет в каталогах текущего диска ARJ-архивы и передает их имена файлу Q.COM (4-я строка). Файл Q.COM заражает обнаруженные архивы, затем находит резидентную копию вируса и возвращает Errorievel 1, если таковой код обнаружен. Если память не заражена (т. е. вирус не был запущен как системный драйвер), то вирус переименовывает файл Q.COM в UMKQYGWK.5KA и добавляет к файлу CONFIG.SYS строку:

INSTAIimGH=C:\UMKQYGWK.5KA

В результате вирус добавляет себя к списку системных драйверов и код вируса будет получать управление при загрузке DOS. Затем вирус уничтожает файл Q.COM и свой файл-носитель (ВАТ-файл, из которого был запущен вирус).

При запуске в виде СОМ-файла (см. третью строку) вирус получает имя ARJ-ap-хива из STDIN, проверяет архив и дописывает к архиву блок данных в формате ARJ. Этот блок является неупакованным (метод "store") файлом /WINSTART.BAT, который содержит код вируса.

При запуске в виде двоичного исполняемого файла текстовые строки выполняются как обычные команды ассемблера и вирус передает управление на свой код несколькими командами JMP:

0100 ЗА ЗА СМР BH,[BP+SI] ; text: ::pFqD 0102 70 46 JO Jmp_a 0104 71 44 JNO Jmp_a

0149 ЗА DB 3Ah

014А Jmp_a:

014А 71 6С JNO JBlp_b

014C 70 6A JO Jl)lp_b

text: :qlpj

0187 ЗА DB 3Ah

01B8 JmpJ):

01B8 71 57 JNO Maln_Code

01BA 70 55 JO Main.Code

0211 Main_Code:

text: :qWpU

Получив управление, двоичный код вируса определяет, был ли запущен вирус как СОМ-файл (в командной строке есть аргумент /i) или как системный драйвер (аргументы отсутствуют). Если вирус запущен как системный драйвер, то он перехватывает INT 8, 21h и остается резидентно в памяти при помощи DOS-вызова Keep (INT 21h,AH°31h).

Если компьютер работает не под Windows З.х, то обработчик INT 8 через некоторое время перезагружает компьютер. Обработчик INT 21h перехватывает два вызова. Первый является командой "AreYouHere?" (AX-FEFEh), по которой вирус определяет свою резидентную копию. Второй вызов — команда GetFileAttribute. Вирус блокирует ее, если обращение идет к файлу с именем, начинающимся на /W. Не очень понятно, зачем это нужно, видимо, вирус таким образом блокирует какие-то действия ARJ.EXE при распаковке файлов /WINSTART.BAT (дроппера вируса).

При запуске в виде двоичного файла без агрументов вирус также ставит у своего файла атрибуты Hidden и Readonly.

Вирус проверяет СОМ-порты и в некоторых случаях инициализирует порт модема и выводит туда строки:

АШ)МОА<сг> HIGHJAQ on COMx:38400,N,8,Kcr>

где СОМх — номер порта модема. Затем вирус перехватывает INT 8 и запускает файл C:\COMMAND.COM с параметрами:

C:\COM1/E:1024/P/F

Перехватчик INT 8 в данном случае перезагружает компьютер, если обнаруживает, что бит Carrier Detect в соответствующем порте равен единице.

BAT.Hot2Trot

Опасный нерезидентный ВАТ-вирус. При запуске ищет .ВАТ-файлы в текущем и родительском каталогах и записывается в их конец. Заражает файлы способом, напоминающим стандартный способ заражения СОМ-файлов: записывает себя в конец файла, а в его начало помещает команду перехода на код вируса. В результате зараженные файлы выглядят примерно так, как показано на рис. 4.4.

43.jpg

При заражении файлов вирус использует DOS-функции (INT 21h). Для этого вирус создает и запускает два временных СОМ-файла: записывает на диск шестнадцате-ричный код этих СОМ-файлов и конвертирует его в двоичный код утилитой DEBUG. Если DEBUG отсутствует в PATH, вирус портит файлы.

Bat.Naive.4894

Неопасный резидентный ВАТ-вирус. Перехватывает INT 21h и записывается в начало .ВАТ-файлов. Зараженные файлы выглядят следующим образом (строки, заключенные в квадратные скобки [ и ] являются комментариями):

@rem NAIVE

@if exist naive.* goto naive

@if •%range_check%=="yes goto naive

@ecno>naive.com [ HEX data1 ]

@naive.com

@if not errorievel 33 goto superwork

@del>nul naive.com

©goto naive

:superwork

@echo>naive.com [ HEX data2 ] @echo>naive.dat [ ASCII text ] @echo»naive.dat [ ASCII text ] @echo»naive.dat [ ASCII text ] [ повтор... ] @echo»naive.dat @naive.com<naive.dat >naive.exe @del>nul naive.com @del>nul naive.dat @naive.exe>nul @del>nul naive.exe @set range_check=yes : naive [ первоначальный .ВАТ-файл ]

HEX datal содержит код вызова проверки своей TSR-копии ("Ты здесь?"), HEX data2 — декодер ASCII->BIN, ASCII text содержит код вируса, преобразованный в ASCII-строки.

При запуске такого ВАТ-файла вирус проверяет ENVIRONMENT на наличие строки RANGE_CHECK и, если она равна YES, передает управление первоначальному файлу. В противном случае вирус создает файл NAIVE.COM, записывает туда код вызова "Ты здесь?", выполняет этот файл и проверяет код возврата (ERRORLEVEL).

Файл NAIVE.COM содержит только вызов INT 21h с AH-F6h. Если в памяти уже присутствует копия вируса, она возвращает 12345678 в регистрах CX:DX и NAIVE.COM отдает управление ВАТ-файлу с кодом ERRORLEVEL=33. Если TSR-копии нет, то NAIVE.COM возвращает ERRORLEVEL^.

Вирус (в ВАТ-файле) проверяет значение ERRORLEVEL и, если оно равно 32, удаляет файл NAIVE.COM и передает управление первоначальному ВАТ-коду. Иначе вирус создает два файла: NAIVE.DAT и NAIVE.COM (при этом уничтожается предыдущий файл NAIVE.COM). В файл NAIVE.COM вирус записывает декодер ASCII->BIN, в файл NAIVE.DAT — ASCII-строки. Затем вирус выполняет команду

@naive.com<naive.dat >naive.exe

которая создает файл NAIVE.EXE, считывает ASCII-данные из NAIVE.DAT, декодирует их в шестнадцатеричный код, записывает результат в NAIVE.EXE и затем запускает NAIVE.EXE на выполнение. NAIVE.EXE устанавливает резидентную копию вируса и возвращает управление ВАТ-файлу, который затем уничтожает NAIVE.EXE, определяет строку ENVIRONMENT "RANGE_CHECK-YES" и передает управление первоначальным командам ВАТ-файла.

При запуске код файла NAIVE.EXE вызывает ту же самую функцию "Ты здесь?", как описано выше. Если вируса нет в памяти, NAIVE.EXE проверяет номер своего "поколения" и в зависимости от его значения пытается вывести на экран текст, содержащий крик души индивидуума, наконец-то достигшего половой зрелости. Однако вирус содержит две ошибки, благодаря которым текст не выводится на экран: первая ошибка — вирус никогда не увеличивает свой счетчик, вторая — все сообщения перенаправлены в NUL командой

@naive.exe>nul

Затем вирус перехватывает INT 21h и остается резидентным при помощи INT 27h.

X