
                    5. РЕЗИДЕНТНЫЕ ФАЙЛОВЫЕ ВИРУСЫ,
                          ОБНАРУЖЕННЫЕ В СССР

   Как уже  указывалось, резидентные  файловые вирусы  являются наиболее
многочисленной группой  компьютерных вирусов для MS DOS и поэтому в рам-
ках данной работы невозможно охватить эту группу полностью. По-видимому,
к весне  1991 г. общее  количество резидентных  вирусов, обнаруженных  в
СССР, превысит сто. Учитывая сроки издания книги и темпы обнаружения но-
вых  вирусов, было бы нереально попытаться описать их все. Вместо этого,
было принято решение достаточно подробно описать наиболее распространен-
ные вирусы,  а также типичных представителей основных подгрупп. Это поз-
воляет "разложить  по полочкам" значительный объем известной по рассмат-
риваемому классу  вирусов информации.  Учитывая, что  "ничто не ново под
луной" и  новые вирусы  часто являются  вариациями уже  известных, такой
подход представляется вполне оправданным.

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



      5.1. Группа "Буквопад" -- первые резидентные файловые вирусы,
                          обнаруженные в СССР

   Данная немногочисленная группа берет начало с вируса RС-1701 -- перво-
го резидентного  файлового вируса,  попавшего в  СССР. В настоящее время
группа включает  несколько вирусов с длиной порядка 1700 байтов, имеющих
характерный визуальный  эффект  "опадания" букв на экране. Вместе с тем,
следует предостеречь  от однозначной  привязки демонстрационного эффекта
присущего тому  или иному  вирусу к самому этому вирусу. Известны случаи
"кражи" удачного  демонстрационного эффекта  другими техно-крысами,  как
это, в частности, имеет место в рассматриваемом случае (см. гл. 7).

               5.1.1. Вирус RС-1701 (Cascade -- Буквопад)

  Данный вирус, по-видимому, является родоначальником группы. Его назва-
ние связано с тем, что в зараженной им системе при определенных условиях
начинается "падение"  букв с  верхних строк  экрана вниз, сопровождаемое
негромким звуком, напоминающим шорох, и блокировкой клавиатуры.
   Формально вирус RС-1701 -- файловый резидентный вирус, поражающий фай-
лы типа  СОМ. Функционирует на версиях MS DOS, начиная с 2.0 (в теле ви-
руса имеется  проверка). Распространяется  как на PC XT, так и на PC AT.
Стратегия заражения -- при запуске файлов на выполнение. Файлы заражаются
однократно.

   Длина тела  вируса 1701 (6А5h) байтов. Максимальная длина заражаемого
файла составляет 63803 (F93Bh) байта. Минимальная -- не проверяется.

   Подобно вирусу С-648, при заражении RС-1701 дописывается в конец про-
граммы и одновременно вставляет в первые три байта COM-файла команду пе-
рехода на тело вируса. При этом размер файла увеличивается на 1701 байт,
дата создания файла и атрибуты файла не меняются. Так же, как и вирус С-
648, вирус  RC-1701 не проверяет, находится ли заражаемая программа (ко-
торая загружается  на выполнение) на защищенной дискете или нет, и пыта-
ется выполнить запись на защищенную от записи дискету. При этом операци-
онная система выдает сообщение:


  Write protect error writing device <лог.имя.устр.>
  Abort, Retry, Ignore, Fail?

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

   Механизм функционирования данного вируса существенно отличается от С-
648. В  частности, для  того, чтобы  различать зараженные и незараженные
файлы, используется  не время  создания, а первые три байта файла. Кроме
того, вирус по BIOS определяет фирму-изготовитель для того, чтобы в слу-
чае, если  таковой является  IBM, сразу  передать управление  зараженной
программе, не  проявляя никаких  признаков активности  (латентная фаза).
Возможно, разработчик  опасался санкций  со стороны такой могущественной
фирмы, как  IBM. Однако при программировании указанной проверки допущена
ошибка, и вирус заражает и ПЭВМ фирмы IBM.

   При запуске  зараженной программы  RС-1701 сначала проверяет, имеется
ли уже  резидентная копия данного вируса с помощью подфункции FF (не ис-
пользуемой в  существующих версиях  MS DOS). функции 4Bh прерывания 21h.
Если нет,  вирус инсталлируется  в младших адресах свободной оперативной
памяти, перехватывая  прерывания 1Ch, 21h и 28h. В результате, при запу-
ске любой  программы вирус  получает управление,  проверяет, является ли
запускаемая программа  зараженной, и  если нет,  то заражает данную про-
грамму на  диске. В процессе заражения файла вирус создает в памяти свою
копию, кодирует ее и дописывает в конец заражаемого файла. Затем у файла
изменяются первые 3 байта (организуется переход на начало тела вируса).

  При выполнении  зараженной программы управление командой JMP (начинаю-
щейся с  байта Е9h) передается на начало вируса. Первыми командами вирус
узнает длину  исходного файла  и раскодирует свое тело. Затем вирус вос-
станавливает измененные им при заражении файла первые три байта програм-
мы, проверяет,  заражен компьютер или нет, и если не заражен, то посред-
ством манипуляций с MCB, PSP и 2 раза копируя себя, остается резидентным
в памяти. Чтобы по окончании работы программы-вирусоносителя резидентная
часть вируса не была удалена из памяти, данный вирус выполняет достаточ-
но тонкую  операцию, заключающуюся  в сдвиге загруженной программы в об-
ласть старших  адресов, записи себя на освободившееся место и соответст-
вующей корректировке системных блоков.
   Демонстрационный эффект  привязан к часам, причем условие запуска вы-
брано так,  что он  проявляется в основном на машинах типа XT, при уста-
новленной дате. На AT визуальный эффект в обычных условиях не наблюдает-
ся, хотя  вирус успешно  размножается. По некоторым данным, он возникает
при установке  даты на  третий квартал 1988 г. В указанных случаях, если
загружается файл COMMAND.COM и он отмечен как зараженный, то вирус дема-
скируется, демонстрируя  свое присутствие  с помощью  эффекта  "падающих
букв" на  экране монитора. Сеансы опадания букв происходят через опреде-
ленные интервалы времени. В процессе падения букв клавиатура блокируется
и работать  с компьютером становится невозможно до полного опадания букв
на экране. При этом падение каждой буквы сопровождается характерным зву-
ком, напоминающим  шорох. На неспециалистов эта "шутка" часто производит
впечатление аппаратной неисправности.

   Никаких других  несанкционированных действий вирус не выполняет, поэ-
тому в  целом его деятельность можно было бы охарактеризовать как мелкое
хулиганство, если бы не одно обстоятельство. При заражении некоторых си-
стемных программ,  используемых преимущественно в AUTOEXEC.BAT, он может
вызывать блокировку загрузки MS DOS. Эта блокировка, в частности, возни-
кает на  ПЭВМ ЕС-1840 при заражении программы E1840.COM (EDISK.COM), ко-
торая обычно  включается в состав AUTOEXEC.BAT и обеспечивает разделение
одного физического диска на два логических, по 360К каждый (А и С на од-
ном дисководе,  B и D на другом). Этот эффект не был предусмотрен разра-
ботчиком вируса,  что, впрочем,  не освобождает  его от ответственности.
Вместе с  тем, ситуация  с EС-1840  может служить наглядной иллюстрацией
того факта,  что при  заражении системных программ любой вирус может со-
здавать опасные побочные эффекты. Поэтому любые компьютерные вирусы сле-
дует немедленно  удалять, как только они появились, даже если путем ана-
лиза или  из надежных источников установлено, что никаких разрушительных
действий они не выполняют.

   Резидентная часть  вируса легко обнаруживается путем просмотра списка
резидентных программ (с помощью утилит MAP, SMAP, MMAP и т.д.). Как вид-
но из  приводимой ниже карты памяти, в списке загруженных программ появ-
ляется дополнительная строка, описывающая безымянную программу, не имею-
щую имени родителя.

   Вирус RC-1701 является одним из первых вирусов, в которых предприняты
определенные усилия,  направленные на усложнение процесса его дизассемб-
лирования. В  частности, основная  часть тела вируса шифруется с помощью
операции "исключающее  ИЛИ". Поэтому непосредственное дизассемблирование
зараженной программы  пакетным дизассемблером полной информации о струк-
туре вируса  не дает.  Ключ шифровки зависит от длины файла, поэтому два
зараженных файла  разной длины  не имеют  общих подстрок, за исключением
начала инсталлятора.  По той  же причине  текстовых строк тело вируса не
содержит.

   Исторические сведения. Данный вирус появился в Западной Европе в пер-
вой половине 1988 г. (см., например, статью [Computing88]). Об этом так-
же свидетельствуют  даты создания  версий программы  Serum. Вирус  также
распространялся на вирусной дискете В.Бончева в файле V1700.COM, датиро-
ванном 16 января 1989 г.

   В СССР  впервые был  выделен в  конце 1988 г. в  Институте прикладной
математики имени  М.В.Келдыша АН СССР. B Киеве появился в начале 1989 г.
Средства защиты появились примерно одновременно с вирусом, поэтому суще-
ственного вреда вирус не нанес.

   В Киеве  первым фагом  для данного  вируса была австрийская программа
Serum3, которая  может также работать и в режиме детектора. Среди отече-
ственных программ,  использовавшихся на  начальной стадии борьбы с виру-
сом, следует отметить детектор В.С.Ладыгина (ИПМ АН СССР) Virus_D1.

   Неформальные названия. Данный вирус имеет порядка десяти неформальных
названий. Среди них отметим следующие: Falling Letters (Падающие буквы),
LetterFall  (Буквопад),  Rash  (Сыпучка),  вирус  падающих  букв,  1701,
Letters (Буквы --  О.Г.Котик), "Слезы капали". Полидетектор Scan называет
данный вирус "1701/1704 Virus -- Version B [170X]".

   Методы и  средства защиты.  Попытки записи  вируса в запускаемый СОМ-
файл детектируются всеми имеющимися сторожами. Сторож Anti4us2 не сраба-
тывает на  попытку вируса  стать резидентным,  поскольку вирус предвари-
тельно перехватывает  прерывание 21h. При использовании системы управле-
ния доступом  к винчестеру  (Disk Manager, Advanced Disk Manager и т.д.)
вирус не  в состоянии попасть в разделы винчестера, для которых установ-
лен статус  READ ONLY.  Специальные средства  защиты от  данного  вируса
принципиально могут  включать детектор, фаг для резидентной части, рези-
дентный и пакетный фаги для зараженных файлов, активную и пассивную вак-
цину. Контекстный детектор может быть создан только на основе поиска на-
чальных 16  байтов вируса,  поскольку остальная  часть вируса шифруется.
Рекомендуемые фаги приведены в прил.1.


                   Фрагмент дампа программы MORE.COM,
                       зараженной вирусом RC-1701

000: E90E009090909090 9090909090909090  ................

    +------------------------ J-сигнатура
    |                  (программа раскодировки)
    |
010:|01FA8BECE800005B 81EB31012EF6872A  .......[..1....*
020: 0101740F8DB74D01 BC82063134312446  ..t...M....141$F
030: 4C75F8

           +--------------- закодированная часть
           |                тела вируса
           |
           3A575901DE 4243CC634242DEDE  Lu.:WY..BC.cBB..
040: A23236062FCF3672 24DF3EBC2CDF362E  .26./.6r$.>.,.6.
...  .. .. .. .. ..   .. .. .. .. .. .  . . . . . . . .
050: 3212361732290FB7 43289D1602020EE7  2.6.2)..C(......

   Пример карты  памяти зараженного  компьютера. В приводимой ниже карте
памяти резидентная часть вируса занимает последнюю строку (1E1E) таблицы
резидентных программ. Ее длина, указанная в графе "bytes", не соответст-
вует действительной. Перехватываемые прерывания также не указаны.



 Addr    Program   Parent   Sg   Bytes   Hooked Vectors
------  --------  --------  --  ------  ----------------
(1A66)  DOS       N/A        3    5504
(1B4E)  E1840     DOS        2    1280
(1BE2)  DOSEDIT   DOS        2    2032
(1E1E)  N/A       N/A        1      64
             5.1.2. Вирус RС-1704 (Cascade-B -- Буквопад-Б)

   Данный штамм  отличается от исходного исправленной ошибкой, связанной
с проверкой фирмы -- изготовителя BIOS. Других особенностей, по-видимому,
не имеет.  Детектируется полидетектором  Scan. Длина  штамма 1704 (6A8h)
байтов.


                  5.1.3. Вирус RС-1704f (1704-Format)

   Данный штамм отличается от исходного фазой проявления, которая связа-
на с  форматированием жесткого диска. Детектируется полидетектором Scan.
Длина штамма 1704 (6A8h) байта.


                       5.2. Иерусалимская группа

   Иерусалимская группа  получила свое  название в связи с тем, что один
из представителей  этой группы  был обнаружен  в конце 1987 г. студентом
Иерусалимского университета.  В настоящее время это самая распространен-
ная группа  резидентных файловых  вирусов. Она  включает довольно  много
разновидностей (штаммов), отличающихся по своим размерам, вызываемым эф-
фектам и типам заражаемых файлов. Из них наиболее распространенным явля-
ется исторически  первый штамм,  который в  пятницу, приходящуюся  на 13
число, удаляет  все запускаемые файлы. Другими словами, если в этот день
файл, содержащий исполняемую программу, запускается на выполнение на за-
раженной машине,  вирус удаляет его с диска и при попытке повторного вы-
полнения этой программы MS DOS сообщит, что соответствующий файл не най-
ден. Большинство представителей этой группы заражают COM-файлы, размещая
свое тело  в начале, а не в конце, как большинство других групп вирусов.
Характерным также  является метод  маркировки зараженных файлов: в конец
файла дописывается специальная строка ("MsDos" для "базисной" версии ви-
руса).


              5.2.1. Вирус RCE-1813 (Jerusalem -- Иерусалим,
                     Black Friday -- Черная пятница)

   Вирус RСЕ-1813  получил название  Black Friday --  Черная пятница, по-
скольку, если  13 число  месяца приходится на пятницу, то он удаляет все
запускаемые файлы. Впервые обнаружен в Израиле, поэтому другим распрост-
раненным  названием  вируса  является  Israeli  Virus --  Израильский  ви
рус. Формально вирус RСЕ-1813 является резидентным файловым вирусом, по-
ражающим как СОМ-, так и ЕХЕ-файлы. Работоспособен на версиях, начиная с
2.0, как на PC XT, так и на PC AT.

   При выполнении  зараженной программы  вирус вначале проверяет наличие
своей копии  в памяти  компьютера. Для этой цели используется вызов фун-
кции 21h-E0h. Если получен ответ "вирус уже имеется", то в случае, когда
вирусоносителем является  COM-файл, вызывается  функция 21h-DDh, которая
выполняет перезапись хозяина на место вируса. Иначе управление передает-
ся зараженной программе.

   Если проверка показала, что вирус в памяти отсутствует, то вирус инс-
таллируется, выполняя  следующие действия:  1) запоминает  в своем  теле
значения байтов памяти с адресами 003FCh-003FEh; 2) размещает по указан-
ным адресам программу копирования и передает ей управление; 3) программа
копирования перемещает  тело вируса  в самые  младшие адреса, выделенные
для основной  программы (при этом вирус в COM-программе копируется сам в
себя, а  в EXE-программе  стирает часть кода основной программы), и воз-
вращает управление  в копию вируса; 4) восстанавливает старое содержимое
байтов памяти  с адресами 003FCh-003FEh; 5) определяет имя основной про-
граммы и  функцией EXEC (21h-4Bh) запускает ее на выполнение (т.е. в па-
мяти компьютера  в этот момент находятся 2 копии основной программы); 6)
по окончании работы программы вирус освобождает лишнюю память и остается
резидентным в  памяти (с  помощью прерывания 21h-31h). Использование для
постановки в  резидент прерывания  21h-31h означает,  что вирус виден по
карте памяти (см. ниже). Из нее видно, что после загрузки в память вирус
перехватывает прерывания  08h и 21h. После того, как вирус RСЕ-1813 стал
резидентным, он пытается заразить каждый запускаемый файл, за исключени-
ем файлов с именем COMMAND.COM.

   Файлы типа СОМ поражаются данным вирусом однократно, при этом дата их
создания не  меняется, а длина увеличивается на 1813 байтов. В инфициро-
ванной программе  тело вируса  размещается в начале файла, поскольку при
заражении COM-файла вирус выделяет область памяти (с помощью функции 48h
прерывания 21h),  в которую копирует сначала свое тело, а затем заражен-
ный файл.  Полученный образ зараженного файла записывается на диск с до-
бавлением 5-байтового  поля (обычно  это поле  содержит "MsDos",  однако
имеются штаммы  с другим  содержанием), используемого вирусом в качестве
признака зараженности  COM-файлов. Ограничений на длину файлов нет, поэ-
тому вирус  уничтожает COM-файлы, длина которых после заражения превысит
64K. Вирус не заражает COMMAND.COM, определяя его по имени файла.

   ЕХЕ-файлы (включая  оверлейные) поражаются  многократно, порой разра-
стаясь до  невероятных размеров,  достигающих предельно  допустимого для
данной машины  размера (например, Norton Commander может достичь размера
в несколько  сот Кбайт). Дата создания не изменяется, а длина при каждом
заражении увеличивается  на 1808 --  1823 байта.  Тело вируса размещается
обычно в  конце файла,  однако в  случае, если поражаемый EXE-файл имеет
неверную длину  в заголовке (это имеет место, например, в ряде программ,
использующих часть  своего файла в качестве буфера на диске для хранения
промежуточных данных), то вирус размещается в середине. Такой эффект на-
блюдается для  Foxbase, QC  и ряда других больших программ, использующих
часть своего дискового файла в качестве буфера или неявного оверлея. При
изменении заголовка файла вирус записывает в поле контрольной суммы зна-
чение 1984h.

   Фаза проявления наступает через некоторое время после того, как вирус
стал резидентным  (это время зависит от тактовой частоты ЭВМ и для обыч-
ных РС ХТ  с тактовой  частотой 4.77  МГц составляет примерно полчаса) и
зависит от  даты и дня недели. В "обычный" день, не приходящийся на пят-
ницу, совпадающую  с 13  числом, проявление данного вируса состоит в за-
медлении работы ЭВМ. При этом выдача любой команды, например DIR, приво-
дит к  медленному "выползанию"  строк на  экран. Этот  эффект основан на
том, что  вирус перехватывает  прерывание от  таймера (8h)  и при каждом
прерывании 8h  выполняет цикл  из нескольких  тысяч команд. Обычно через
некоторое время  после начала фазы проявления действия вируса приводят к
зависанию MS DOS с сообщением "Stack overflow". Вторым визуальным эффек-
том является вырывание кусков изображения с появлением на экране черного
окна в  левом нижнем  углу экрана (вирус выполняет скроллинг части экра-
на). Если текущий день недели -- пятница, а текущее число -- 13, то стадия
проявления меняется: в такие дни вирус не заражает собой все запускаемые
файлы, а просто удаляет их с диска. Таким образом, при попытке запустить
программу на  выполнение MS DOS выдает сообщение о том, что файл не най-
ден. В результате будут уничтожены все файлы, которые пользователь пыта-
ется запускать,  пытаясь выяснить, что происходит с компьютером. Поэтому
непреложным правилом поведения пользователей должно стать следующее: при
возникновении каких-то  аномалий необходимо  перегрузиться с  защищенной
дискеты и уже после этого пытаться анализировать, что произошло с компь-
ютером. Как  уже отмечалось,  из-за ошибки в тексте вируса при заражении
как COM-,  так и  EXE-файлов, имеющих  размер, дающий  при увеличении на
1808 -- 1821  байтов величину, превосходящую 64К, 128К и т.д., заражаемая
программа необратимо портится, перезаписываясь в начале.

   Исторические сведения.  Вирус RСE-1813  появился в  Израиле  в  конце
1987 г. Это первый известный вирус, заражавший EXE-файлы достаточно уни-
версальным способом. В дальнейшем этот способ стал своего рода "стандар-
том" для  файловых вирусов. Несмотря на сравнительную примитивность, ви-
рус  RCE-1813 является одним из самых распространенных в мире.

   В СССР обнаружен в ноябре 1988 г. в одном из московских кооперативов.
Первый детектор был, по-видимому, разработан в Институте программных си-
стем (Переславль-Залесский),  однако эта  программа до Киева не дошла. В
Киеве обнаружен  весной 1989 г. По результатам анкеты, проведенной авто-
ром на  апрельском семинаре, RCE-1813 был обнаружен в 10 организациях из
50, принявших участие в анкетировании. Поскольку распространение средств
защиты несколько  запоздало, вирус распространился довольно широко и на-
нес определенный ущерб: десятки, если не сотни тысяч часов были потеряны
на восстановление и перезапись зараженных программ.

   Первыми использовавшимися  в киевской  практике детекторами для этого
вируса были Doctor А.А.Чижова и Antidos киевской разработки, которые по-
явились примерно в июне. Первые фаги, использовавшиеся в Киеве для борь-
бы с этим вирусом, были разработаны А.А.Чижовым (Doctor1) и Л.И.Обуховым
(Fag1813 -- август  1989 г.). Одновременно с фагом Л.И.Обуховым была раз-
работана первая отечественная резидентная вакцина Vac1813R и вакцина-де-
тектор Vac1813Q, выдающая предупреждающее сообщение при запуске заражен-
ной вирусом RCE-1813 программы. Вакцина содержала обработчик неиспользу-
емого в  MS DOS прерывания  Е0, используемого  вирусом для  определения,
имеется ли в оперативной памяти копия вируса или нет (если этот обработ-
чик возвращает  значение 3,  то вирус считает, что он уже является рези-
дентным и  загрузку собственной копии не выполняет). Позднее В.В.Понома-
ренко была  разработана поливакцина  NeatVac (Софтпанорама,  т.2,  No. 7),
развившая этот метод и для других резидентных вирусов.

   Зарубежные программы  появились в  СССР несколько  позднее. Первой из
них была  австрийская программа  Fag_SU, разработанная  Joe Ratcatcher &
Anre Molnar.

   Неформальные названия.  Данный вирус  имеет более десяти неформальных
названий. Среди  них: Hebrew  University, PLO  (ООП), Black Hole (Черная
дыра), Вирус замедления, Time (Время -- О.Г.Котик). Полидетектор Scan на-
зывает данный вирус "Jerusalem Virus Version B [Jeru]".

   Методы и средства защиты. Зараженность файла легко определяется визу-
ально, путем  просмотра дампа.  В настоящее время все полифаги и полиде-
текторы распознают  этот вид  вируса (см. прил.1). Однако некоторые фаги
не обрабатывают  случай, когда вирус находится в середине файла. Поэтому
результаты их  работы необходимо  контролировать с  помощью контекстного
поиска по всему диску. Поскольку для каждого зараженного СОМ-файла вирус
в конце  дописывает признак  зараженности, который  состоит из 5 байтов,
содержащих слово  MsDos, можно реализовать пассивное вакцинирование СОМ-
файлов от этого типа вирусов. Для этой цели применима, например, команда
COPY, если  заготовить слово MsDos в отдельном файле, а затем конкатени-
ровать COM-файлы с этим файлом.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-1813

       +----------------  команда обхода области данных
       | (дрозофила перемещена в конец файла - см. ниже)
    +-----+
000:|E9920073554D7344 6F7300018F250000  ...sUMsDos...%..
010: 001000D800AD0F5C 06FD1856059D1007  .......\...V....
020: 7E00000000000000 0000000000000000  ~...............
030: 000E258000000080 000E255C000E256C  ..%.......%\..%l
040: 000E250004FABA29 0053A1000000004D  ..%....).S.....M
050: 5A8000C300730160 00EA0AFFFF771710  Z....s.`.....w..
060: 078419C50077171E 0000009090909090  .....w..........
070: 0500200021001B01 00021000707D0100  .. .!.......p}..
080: B9412A9B434F4D4D 414E442E434F4D01  .A*.COMMAND.COM.
0090: 0000000000
              +--------- J-сигнатура
              |
095           |FCB4E0 CD2180FCE0731680  .........!...s..
0A0: FC037211B4DDBF00 01BE100703F72E8B  ..r.............
0B0: 8D1100CD218CC805 10008ED0BC000750  ....!..........P
...  .. .. .. .. ..   .. .. .. .. ..    . . . . . . . .
5E0: 1B00B82425CD2107 1F5F5E5A595B589D  ...$%.!.._^ZY[X.
5F0: 2EFF2E1700000000 0000000000000000  ................
600: 4D9D100010383133 522E434F4D000122  M....813R.COM.."
610: E9920073554D7344 6F7300018F250000  ...sUMsDos...%..
620: 001000D800AD0F5C 06FD1856059D1007  .......\...V....
630: 7E00000000000000 0000000000000000  ~...............
640: 000E258000000080 000E255C000E256C  ..%.......%\..%l
650: 000E250004FABA29 0053A1000000004D  ..%....).S.....M
660: 5A8000C300730160 00EA0AFFFF771710  Z....s.`.....w..
670: 078419C50077171E 0000009090909090  .....w..........
680: 0500200021001B01 00021000707D0100  .. .!.......p}..
690: B9412A9B434F4D4D 414E442E434F4D01  .A*.COMMAND.COM.
6A0: 0000000000FCB4E0 CD2180FCE0731680  .........!...s..
...  .. .. .. .. ..  .. .. .. .. ..     . . . . . . . .
    +------------------------ тело дрозофилы
    |
710:|9090909090909090 9090909090909090  ................
720:|4D73446F73                         MsDos
    +----------+
         +--------------- признак зараженности COM-файла

   Пример карты  памяти зараженного  компьютера. В приводимой ниже карте
памяти резидентная часть вируса занимает последнюю строку (1CD0) таблицы
резидентных программ.  Перехватываемые прерывания соответствуют действи-
тельности.



 Addr    Program   Parent   Sg   Bytes   Hooked Vectors
------  --------  --------  --  ------  ----------------
(19A6)  DOS       N/A        2    3536
(1A8E)  E1840     DOS        2    1280
(1C4C)  DOSEDIT   DOS        2    2064
(1CD0)  N/A       DOS        1    1824  08  21



              5.2.2. Вирус RCE-1636 (Sunday -- Воскресенье)

   Данный штамм  получил название Sunday -- воскресенье, поскольку в этот
день недели  вирус удаляет  все запускаемые  файлы. Формально вирус RСЕ-
1636 является  резидентным файловым  вирусом, поражающим  как СОМ-файлы,
так и ЕХЕ-файлы. Вирус не проверяет версию MS DOS, на которой функциони-
рует. Работоспособен  на версиях,  начиная с  2.0 как на PC XT, так и на
PC AT.

   При выполнении  зараженной программы  вирус вначале проверяет наличие
своей копии  в памяти  компьютера аналогично  тому, как это делает вирус
RCE-1813. Затем вирус инсталлируется и перехватывает прерывания 21h и 8.
Механизм  размножения   вируса  стандартен --   перехват  прерывания  21h
(функции 4Bh)  и заражение  каждой подходящей  запускаемой на выполнение
программы, за  исключением файла  с именем  COMMAND.COM. Ограничений  на
длину файлов  нет, поэтому вирус уничтожает COM-файлы, длина которых по-
сле заражения превысит 64K.

   Файлы типа СОМ поражаются данным вирусом однократно, при этом дата их
создания не  меняется, а длина увеличивается на 1636 байтов. В инфициро-
ванной программе  тело вируса  размещается в  начале файла. Со смещением
184h  от   начала  зараженного   файла  расположена   текстовая   строка
COMMAND.COM, а  со смещением 351h -- текст сообщения, выдаваемого вирусом
на экран:

  Today is SunDay! Why do you work so hard?
  All work and no play make you a dull boy!
  Come on ! Let's go out and have some fun!
  (Сегодня воскресенье! Зачем работать так напряженно?
  Постоянная работа без игр делает Вас занудой !
  Пошли ! Давай выйдем из дому и развлечемся !)

   В конец  зараженного СОМ-файла записывается пятибайтовое поле (обычно
это поле содержит C8h, F7h, E1h, EEh, E7h, однако возможны штаммы с дру-
гим содержанием).  Указанное поле используется вирусом как признак зара-
женности COM-файлов.

   EXE-файлы заражаются однократно. Контроль зараженности по тому же пя-
тибайтовому полю.  При заражении EXE-файлов вирус дописывает свое тело в
конец программы  и исправляет  заголовок EXE-файла,  запоминая некоторые
поля. Как  и RCE-1813,  вирус записывает  вместо контрольной суммы число
"1984". При этом оригинальное значение контрольной суммы теряется. В ко-
нец зараженного файла дописываются упомянутые выше 5 байтов.

   Как уже  указывалось, данный вирус имеет стадию проявления, наступаю-
щую в  воскресенье. В  этот день вирус не заражает собой все запускаемые
файлы, а, как и RCE-1813, удаляет их с диска. Перехватывая прерывание от
таймера (прерывание 8), вирус отсчитывает один час от начала режима уда-
ления запускаемых  файлов и  выводит приведенное  выше сообщение.  Вирус
имеет несколько штаммов, в одном из которых в этом месте допущена ошибка
и данная  ветвь кода никогда не выполняется. Аналогично вирусу RCE-1813,
возможна запись вируса в середину "расширенных" EXE-файлов.

   Исторические сведения.  Вирус RСE-1636 появился в конце 1988 -- начале
1989 г. в  США. В СССР обнаружен в марте 1990 г. в Ленинграде и Киеве, а
чуть позднее в Москве. Первым отечественным полифагом для данного вируса
был, по-видимому,  Aidstest (версии,  начиная с  апреля 1990 г.). Анализ
кода позволяет предположить, что автор использовал в качестве основы для
его написания вирус RCE-1813.

   Неформальные названия. Помимо приведенных в заголовке неизвестны. По-
лидетектор Scan называет данный штамм "Sunday Virus [Sunday]".

   Методы и средства защиты. Зараженность файла легко определяется путем
визуального просмотра дампа. Для входного контроля можно применять поли-
детектор Scan. Рекомендуемые полифаги приведены в прил.1.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-1636

000: E992000131C8F7E1 EEE70001F51E0000  ....1...........
010: 002200AA00DF0F60 02FD125605C61090  .".....`...V....
020: 7E00000000000000 0000000000004506  ~.............E.
030: 10E02B8000000080 00E02B5C00E02B6C  ..+.......+\..+l
040: 00E01B80006C3E12 00D33900F006004D  .....l>...9....M
050: 5AC4017500000020 003906FFFF160E5D  Z..u... .9.....]
060: 068419C400160E1E 000000909090CD20  ...............
070: 050020008814A579 0002100060E30000  .. ....y....`...
080: B9412A9B434F4D4D 414E442E434F4D01  .A*.COMMAND.COM.
090: 0000000000

              +------  начало инсталлятора
              |
              |FCB4FF CD2180FCFF731580  .........!...s..
0A0: FC047210B4DDBF00 01BE5F0603F72E8B  ..r......._.....
0B0: 4D11CD218CC80510 008ED0BC5D0650B8  M..!........].P.
0C0: C40050CBFC062E8C 0631002E8C063900  ..P......1....9.
...  .. .. .. .. ..   .. .. .. .. ..    . . . . . . . .
240: 1F00907E5E5B582E FF0E1F002EFF2E13  ...~^[X.........
250: 00546F6461792069 732053756E446179  .Today is SunDay
260: 212057687920646F 20796F7520776F72  ! Why do you wor
270: 6B20736F20686172 643F0A0D416C6C20  k so hard?..All
280: 20776F726B20616E 64206E6F20706C61   work and no pla
290: 79206D616B652079 6F7520612064756C  y make you a dul
2A0: 6C20626F79210A0D 436F6D65206F6E20  l boy!..Come on
2B0: 21204C6574277320 676F206F75742061  ! Let's go out a
2C0: 6E64206861766520 736F6D652066756E  nd have some fun
2D0: 21249C80FCFF7505 B800049DCF80FCDD  !$....u.........
2E0: 740E3D004B7503EB 35909D2EFF2E1700  t.=.Ku..5.......
...  .. .. .. .. ..   .. .. .. .. ..    . . . . . . . .
5F0: 9D2EFF2E1700FC03 0000000000000000  ................
600: 0000000000000000 0000000000000000  ................
610: 0000000000000000 0000000000000000  ................
620: 0000000000000000 00002C0825460008  ..........,.%F..
630: 250825C60716026C 1540003CFC04000D  %.%....l.@.<....
640: C97E9300010702D4 00F51E55C8556CFE  .~.........U.Ul.
650: B98B00803EEB54A2 4C80003E00435690  ....>.T.L..>.CV.
660: 9090909090909090 9090909090909090  ................
670: 9090909090909090 90909090909090CD  ................
680: 20C8F7E1EEE7                       ......
          +--------+
           +----------- признак зараженности файла

            5.2.3. Другие представители иерусалимской группы

   Как уже указывалось, вирусы иерусалимской группы относятся к одним из
самых распространенных.  Хотя некоторые из них выделены в СССР (первоап-
рельская подгруппа, вирус Fu Manchu), их правильнее относить к "ископае-
мым" вирусам  (см. гл.6).  Имеется ряд вирусов отечественной разработки,
основанных на  вирусе RCE-1813 и, тем самым, относящихся к иерусалимской
группе. Среди них отметим воронежскую подгруппу, описываемую ниже.



                5.3. "Классические" болгарские вирусы --
                           группа TP-вирусов

   Данная группа  резидентных вирусов  включает вирус  TP-44, первым  из
болгарских получивший глобальное распространение. В связи с этим она мо-
жет рассматриваться  как  классический  продукт  "болгарского  вирусного
взрыва". По  данным В.Бончева, все вирусы, входящие в данную группу, на-
писаны техно-крысой  из софийского вуза ВМЕИ им. В.И.Ленина (теперь Тех-
нический университет). В СССР попали 12 вирусов этой группы. Вирусы раз-
работаны в  конце 1988  -- начале 1989 г. Впервые эти вирусы были описаны
В.Бончевым (окончившим, кстати, ВМЕИ им. В.И.Ленина в 1984 г.), который,
по его  собственному признанию, знаком с написавшей их техно-крысой. Об-
ращают на  себя внимание  некоторые факты. В статье [Бончев89б] В.Бончев
утверждает, что заражение EXE-файла несколько сложнее, чем COM-файла, но
возможно, хотя  на самом деле сложность заражения COM- и EXE-файлов при-
мерно одинакова.  Действительно, первые штаммы вирусов данной группы за-
ражают EXE-файл специальным, более сложным способом, основанным на пред-
варительной переделке EXE-файла в COM-файл. Кроме того, бросается в гла-
за подробность,  с которой  В.Бончевым описаны  технические решения, ис-
пользованные в  ряде штаммов этой группы, причем само описание ведется с
характерной скорее для разработчика, чем для исследователя точки зрения.
В частности,  в статье указана такая "тонкая" подробность, как "вытесне-
ние" старшими  штаммами группы  штаммов с меньшими номерами в зараженных
файлах, хотя в самой статье упоминаются только вирусы подгруппы VACSINE,
для которых "вытеснение" имеет место лишь в оперативной памяти. В статье
указывается, что  автором создан  и фаг для этой группы вирусов, а един-
ственным известным болгарским полифагом для данной группы является прог-
рамма TP48CLS  В.Бончева. И, наконец, по оценке большинства исследовате-
лей, вирусы написаны специалистом высокой квалификации. Ни один из виру-
сов этой группы не ориентирован на нанесение вреда данным или программам
на зараженном им компьютере.
   Для большинства  представителей этой  группы отличительным  признаком
является строка  F47Ah в  начале и  конце (кроме  версии  TP-45  (Yankee
Doodle-2D)) вируса.  При этом в конце вируса за этой строкой следует но-
мер штамма.  Как видно из приводимых ниже дампов, байт F4h расположен со
смещением 4 от конца, а байт 7Ah -- со смещением 3. Следующий за этой па-
рой байтов (F4h, 7Ah) байт и определяет номер штамма.

   Штаммы, входящие в данную группу, можно разделить на три подгруппы.

   1) Подгруппа Vacsina  (TP-4, TP-5  и TP-16). Это первые представители
данной группы,  разработанные примерно  в конце 1988 г. Все они содержат
строку "VACSINA",  выполняют преобразование EXE-файлов в COM-файлы в два
этапа и не заражают файлов размером больше 64К.

   2) Подгруппа музыкальной перезагрузки (ТР-24 и TР-25). Штаммы, входя-
щие в  данную подгруппу,  играют мелодию "Yankee Doodle Dandy" при пере-
загрузке. Ограничение на размер заражаемых EXE-файлов сохраняется.

   3) Подгруппа музыкальных самоедов (TP-33, TP-34, TP-38, TP-39, TP-41,
TP-44 и TP-45). Штаммы, входящие в данную подгруппу, разработаны пример-
но в  марте -- апреле 1989 г. Они играют указанную выше мелодию в 17 ч, а
начиная с TP-38, обладают средствами обхода резидентных фильтров и защи-
ты от  трассировки на зараженной машине. Размер заражаемых EXE-файлов не
ограничен, заражение ведется общепринятым способом.

   В первом приближении "динамика" изменений свойств данной группы виру-
сов может  быть представлена  следующим образом (изложение базируется на
материалах Д.Н.Лозинского):  до версии TP-05 при заражении портится дата
создания файла; до TP-09 включительно при заражении COM-файла требуется,
чтобы первой  командой программы  была JMP  (т.е. файл  начинался с кода
E9).

   До TP-16  заражение EXE-программ  происходит в  два этапа.  На первом
этапе EXE-программа трансформируется в COM-формат путем дописывания спе-
циального "псевдозагрузчика"  размером 132  байта, присоединяющегося  по
типу вируса,  но лишенного  способности к  самостоятельному размножению.
Следует отметить,  что преобразование  EXE-файла в COM-файл, выполняемое
вирусом, отличается  от преобразования, выполняемого утилитой EXE2COM и,
тем самым,  представляет некоторый  самостоятельный интерес.  На  втором
этапе получившийся "полуфабрикат" заражается как обычный COM-файл (поли-
фаг Aidstest  распознает такой "полуфабрикат" и помечает его в протоколе
как (FL)).

   Следующие версии,  включая TP-34,  также преобразуют файлы типа EXE в
файлы типа  COM, однако делают это в один прием. По-видимому, штаммов от
TP-16 до  TP-24 вообще  не существует.  Начиная с версии TP-35, EXE-про-
граммы сохраняют  свой формат, причем во всех заражаемых модулях со сме-
щением 12h  от начала стоит расстояние до начала вируса, деленное на 16.
Одновременно в начале вируса дублируется сигнатура F47Ah и номер версии.
Версия TP-45 при заражении EXE-программы в конец файла эту информацию не
пишет. С версии TP-24 размножение не обнаруживается резидентными антиви-
русными программами, следящими за записью в программные файлы, поскольку
вирус передает  управление непосредственно  в BIOS,  обходя сторожей.  С
версии TP-33  вирусы принимают  меры защиты от трассировки. В предыдущей
главе описан  нерезидентный вирус E-1961, называемый Scan "Yankee Doodle
Short", однако  с данной группой его объединяет только общность играемой
мелодии.

   Для данного  семейства вирусов просматривается прямая аналогия с опи-
санной выше  игрой Animal,  хотя конструктивная цель в данном случае от-
сутствует. Номер версии вируса используется данным вирусом для идентифи-
кации себя  в оперативной памяти и возвращается резидентными частями ви-
руса при  выполнении функции  С500h прерывания  21h для версий 19h, 21h,
22h или функции C600h для версий 26h, 29h, 2Сh. При этом, если запускать
поочередно файлы,  зараженные вирусами разных версий в порядке возраста-
ния версий,  то в  оперативной памяти будет создана как бы цепочка рези-
дентных вирусов, причем при запуске незараженной программы она будет ин-
фицирована версией вируса с наибольшим номером. Если же начать загружать
зараженные программы в порядке убывания версии вируса, то версии с мень-
шими номерами  не будут  становиться резидентными.  Используя эту  идею,
В.В.Пономаренко создал  резидентную поливакцину NeatVac (см. Софтпанора-
ма, т.2, No. 7), позволяющую блокировать заражение оперативной памяти дан-
ным вирусом.

   Кроме того,  и это существенно усиливает аналогию с игрой Animal, ре-
зидентный вирус,  входящий в  подгруппу самоедов,  при попытке заражения
некоторой программы  не только  контролирует, заражена уже эта программа
или нет, но и определяет номер версии, если программа уже заражена одним
из вирусов  данной группы.  Дальнейшие действия  вируса зависят от того,
больше этот номер версии его собственного номера или нет. Если программа
заражена вирусом с меньшим номером, то вирус заменит эту версию на свою,
предварительно "выкусив"  старую. Поскольку  вирус  при  этом  проверяет
только последние  байты файла,  можно вакцинировать  файл от большинства
вирусов этой группы, дописав в конец строку F4 7A FF 00.

   Полидетектор  Scan  называет  представителей  данной  группы  вирусов
"Vacsina virus [Vacs]" или "Yankee Doodle Virus [Doodle]", причем ранние
(до 66)  версии Scan  часто выдают для зараженного файла оба имени одно-
временно, что обычно не означает заражения модуля двумя вирусами, а свя-
зано с несовершенством используемых в нем сигнатур.


                        5.3.1. Подгруппа Vacsina

   Данная подгруппа получила свое название в связи с тем, что все входя-
щие в  нее штаммы  содержат строку "VACSINA". Заражаются как COM-, так и
EXE-файлы, причем максимальная длина зараженных файлов не превышает 64К.
Заражение файлов  происходит при  запуске на  выполнение соответствующих
программ. При  заражении вирусы  данной подгруппы дописывают свое тело в
конец COM- и EXE-файлов. Штаммы подгруппы работоспособны на любой версии
MS DOS. Проверка  номера версии в теле вируса не выполняется. Перехваты-
вают прерывание 21h.

   Заражаются только  COM-файлы, имеющие размер мeнее 63К и начинающиеся
с команды перехода (первый байт файла должен содержать E9h). Дата созда-
ния и  атрибуты остаются  неизменными. Заражение выполняется однократно.
При заражении вирус дописывает тело в конец файла, вставляя в первые три
байта команду  перехода на начало вируса. Длина зараженного файла увели-
чивается до значения, кратного 16, поэтому при лечении недостаточно уко-
рачивать файл на стандартную величину -- исходная длина файла должна быть
извлечена из  тела вируса.  В конце тела вируса хранятся байты F4h, 7Ah,
по которым вирус определяет, что данный СOM-файл уже заражен.

   Как уже  отмечалось, заражение  EXE-файлов выполняется данной группой
очень своеобразно: в заголовок заражаемого EXE-файла записывается коман-
да перехода  на тело  вируса (в  данном случае  тело представляет  собой
часть вируса  размером 132  (84h), обеспечивающую  загрузку  EXE-файлов,
т.е. по  сути выполняет  функции системного  загрузчика). Таким образом,
вирус переделывает  зараженный EXE-файл  в COM-файл. Этот "псевдозагруз-
чик" EXE-файлов обеспечивает настройку загруженного в память файла и пе-
редачу на него управления. Для лечения такого файла достаточно восстано-
вить первые  три байта  с учетом  первоначальной длины файла и укоротить
файл на  132 байта. EXE-файлы, требующие не всю свободную память системы
(не равна FFFF переменная MaxMem в заголовке), данным вирусом не заража-
ются. Кроме того, вирус не заражает файлы, размер которых больше 64К или
размер которых  превысил бы 64К при заражении. Поскольку после заражения
EXE-файл фактически  превращается в COM-файл, возможно его вторичное за-
ражение вирусом, уже как файла типа COM.


               5.3.1.1. Вирус RСE-1206 (ТР-05, Vacsina-5)

   Данный вирус является наиболее распространенным в подгруппе. Формаль-
но вирус  RСE-1206 является файловым резидентным вирусом, поражающим как
файлы типа  СОМ, так и файлы типа EXE. Зараженный COMMAND.COM имеет раз-
мер 26509 байтов (если его первоначальный размер был 25307 байтов). Дли-
на вируса  составляет 1206 (4B6h) байтов. Заражаются COM-файлы длиной от
1206 (4B6h)  до 62867 (F593h) байтов и EXE-файлы длиной до 64947 (FDB3h)
байтов при загрузке их в память для выполнения (21h-4Bh).
   Инсталляция вируса  выполняется обычным образом. При выполнении зара-
женной COM-программы  управление командой JMP (Е9h) передается на начало
вируса. Первыми командами вирус узнает длину исходного файла и проверяет
наличие своей  копии в  памяти компьютера. Если компьютер не заражен, то
вирус копирует  всю программу  в свободное место в памяти и, таким обра-
зом, остается  резидентным. Затем  вирус перехватывает прерывание 21h. В
результате при запуске любой программы вирус получает управление, прове-
ряет, является ли запускаемая программа зараженной, и если нет, то зара-
жает данную программу на диске. Определение зараженности программы осно-
вано на считывании последних 3 байтов зараженной программы.

   У заражаемого  COM-файла вирус  проверяет первый байт. Если этот байт
не равен  E9h (JMP),  то файл  не заражается.  При заражении длина файла
увеличивается до  значения, кратного  параграфу (16 байтов), к файлу до-
бавляются 1206  байтов вируса  и изменяются первые 3 байта файла (JMP на
тело вируса).  При заражении  EXE-файла к нему дописываются 132 байта из
тела вируса  и изменяются первые 3 байта файла (JMP на тело вируса), при
этом файл  преобразуется в  формат COM.  Дописанные к файлу 132 байта не
распространяют вирус и лишены способности к размножению. Их действие за-
ключается в  настройке адресов  программы при  ее запуске (псевдозагруз-
чик).

   Фаза проявления для данного вируса привязана к моменту заражения фай-
ла: при заражении файла раздается звуковой сигнал (BELL).

   Резидентная часть  вируса обнаруживается путем просмотра списка рези-
дентных программ.  При этом  видна "подозрительная"  дополнительная про-
грамма, не  имеющая ни  имени, ни родителя и имеющая размер 1200 байтов.
Являясь резидентным,  вирус распознает  случаи загрузки программ с защи-
щенных от  записи дискет  или разделов винчестера и не пытается заражать
такие файлы.

   При запуске  вирус создает на диске скрытый файл, который, по-видимо-
му, никакой функции не выполняет и, возможно, использовался при отладке.

   Исторические сведения.  По данным B.Бончева, вирус разработан в конце
1988 г. В Москве вирус появился весной 1989 г. В Киеве появился вместе с
компьютерами, приобретенными  у одного из московских кооперативов в сен-
тябре 1989 г.  Из советских авторов вирус RСЕ-1206 впервые, по-видимому,
описал О.Г.Котик  в документации к полифагу Anti-Kot, который был первым
фагом против данного вируса, широко использовавшимся в Киеве.

   Неформальные названия. Помимо приведенных выше названий, используется
название Sina.

   Методы и  средства защиты.  Зараженность программы легко определяется
визуально при  просмотре дампа.  Рекомендуемые  фаги приведены в прил.1.
Их же можно использовать и для входного контроля. Вакцина -- NeatVac.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-1206

100: E9C90A9090909090  9090909090909090 ................
110: 9090909090909090  9090909090909090 ................
***   Далее следуют строки, идентичные предыдущей ***
810: 9090909090909090  9090909090C31A90 ................
820: 4D07004B00000000  0000000000000000 M..K............
830: 60020B105605AB0E  2000050090909090 `...V... .......
840: 9090C31A00564143  53494E4120202020 .....VACSINA
850: 0000800000000000  7C1137A80040C200 ........|.7..@..
860: 460A000000000000  0020202020202020  F........
870: 2020202020202020  2020202020E80000              ...
880: 5B508CC00510008B  0E0E0103C8894FFB [P............O.
890: 8B0E160103C8894F  F78B0E1001894FF9 .......O......O.
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
8F0: 9C3D004B74069D2E  FF2E0000061E5557 .=.Kt.........UW
900: 56525153508BECB8  2435CD212E8C0606 VRQSP...$5.!....
910: 002E891E04000E1F  BABD00B82425CD21 ............$%.!
920: 0E1FBA1400B40FCD  21B800438E5E0E8B ........!..C.^..
930: 5606CD217303E9DA  012E890E0800B801 V..!s...........
940: 4380E1FECD217303  E9C801B8023D8E5E C....!s......=.^
970: 060075142E813E0C  004D5A7503E9B501 ..u...>..MZu....
CA0: 258CD28EDABAC000  CD21B800008EC026 %........!.....&
CB0: C706C5007F3926C6  06C700058CC88ED8 ....9&.........
CC0: B41ABA5000CD212E  8B47FBE94EFF1F07 ...P..!..G..N...
CD0: 0502F47A0500                       ...z..
         +----+
        сигнатура

       Пример карты памяти зараженного компьютера
 Addr    Program   Parent   Sg   Bytes  Hooked Vectors
------  --------  --------  --  ------  ---------------
(1111)  DOS       N/A        2    3536
(17E8)  DOSEDIT   DOS        2    2016  21
(11F9)  DOSEDIT   DOS        2    2032
(127B)  BETA      DOS        2    4064
(0007)  N/A       N/A        1    1200
              5.3.1.2. Вирус RCE-1212 (ТР-04, Vacsina-04)

   За исключением  нескольких команд, вирус практически полностью совпа-
дает с вирусом RCE-1206. Длина вируса составляет 1212 байтов. Портит да-
ту создания файла.

   Исторические сведения.  Вирус  распространялся  на  вирусной  дискете
В.Бончева. Содержащийся  на ней  файл TP4VIR.COM  датирован  13  декабря
1988 г.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-1212

000: E969089090909090 9090909090909090  .i..............
010: 9090909090909090 9090909090909090  ................
***  последующие строки идентичны предыдущей ***
4C0: 4D07004B00000000 0000000000000000  M..K............
4D0: 5C06FD1856059D10 2000050090909090  \...V... .......
4E0: 9090909005564143 53494E4120202020  .....VACSINA
4F0: 0000800000000000 7011C3900240C200  ........p....@..
500: D009000000000000 0020202020202020  .........
510: 2020202020202020 2020202020E80000               ...
520: 5B508CC00510008B 0E0E0103C8894FFB  [P............O.
530: 8B0E160103C8894F F78B0E1001894FF9  .......O......O.
...  .. .. .. .. ..  .. .. .. .. ..     . . . . . . . .
940: 1E00005BB821258C D28EDABAC000CD21  ...[.!%........!
950: B800008EC026C706 C5007F3926C606C7  .....&.....9&...
960: 00048CC88ED8B41A BA5000CD212E8B47  .........P..!..G
970: FBE948FFC0040301 F47A0400          ..H......z..
                      +----+
                      сигнатура


              5.3.1.3. Вирус RCE-1339 (ТР-16, Vacsina-10)

   Длина этого вируса составляет 1339 (53Bh) при заражении COM- и 1483 --
EXE-файлов. Как  и во  всех вирусах рассматриваемой подгруппы, заражение
EXE-файлов происходит  в две стадии. После первой стадии файл удлиняется
на 132 байта.  Никаких действий,  кроме размножения, вирус не выполняет.
Заражаются COM-файлы  длиной от  1339 (53Bh)  до 62601  (F489h) байтов и
EXE-файлы длиной  до 64947  (FDB3h) байтов  при загрузке их в память для
выполнения (21h-4Bh).  По структуре  вирус довольно  близок  к  RCE-1206
(Vacsina-05), однако заражает COM-файлы вне зависимости от первого байта
файла (вирус Vacsina-05 заражает только файлы, первый байт которых равен
E9h).


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-1339

000: E94D099090909090 9090909090909090  .M..............
010: 9090909090909090 9090909090909090  ................
*** Последующие строки идентичны предыдущей ***
540: 4D08005300000000 0000000000000000  M..S............
550: 5C06FD1856059D10 20000500AE002100  \...V... .....!.
560: 9090909090909090 9090909090900056  ...............V
570: 414353494E412020 2020000080000000  ACSINA    ......
580: 00009C11FB750140 C200460A00000000  .....u.@..F.....
590: 0000002020202020 2020202020202020  ...
5A0: 20202020202020E8 00005B508CC00510         ...[P....
5B0: 008B0E0E0103C889 4FFB8B0E160103C8  ........O.......
5C0: 894FF78B0E100189 4FF98B0E1401894F  .O......O......O
5D0: F58B3E18018B1608 01B104D3E28B0E06  ..>.............
...  .. .. .. .. ..   .. .. .. .. ..    . . . . . . . .
A40: 00005BB821258CD2 8EDABACA00CD21B8  ..[.!%........!.
A50: 00008EC026C706C5 007F3926C606C700  ....&.....9&....
A60: 108CC88ED8B41ABA 5000CD212E8B47FB  ........P..!..G.
A70: E92DFF40050301F4 7A10E9            .-.@....z..
                   +-----+
                  сигнатура

               5.3.2. Подгруппа музыкальной перезагрузки

   Штаммы, входящие  в данную группу, имеют характерную фазу проявления:
в зараженной  ими системе попытка перезагрузки MS DOS с помощью комбина-
ции нажатий клавиш CTRL-ALT-DEL вызывает в начале звучание мелодии "Янки
Дудль Денди".  Звучание продолжается  примерно 20 с,  а затем происходит
нормальная перезагрузка системы.


                    5.3.2.1. Вирус RСE-1805 (ТP-25,
                    Yankee Doodle-19 -- Янки дудль-19)

   Вирус RСE-1805  является файловым резидентным вирусом, поражающим как
файлы типа  СОМ, так  и файлы  типа EXE. Заражение файлов происходит при
запуске на  выполнение соответствующих  программ. Заражает  COMMAND.COM.
Вирус работоспособен на любой версии MS DOS.

   При запуске зараженной программы данный вирус сначала проверяет, име-
ется ли  уже резидентный вирус, по описанной выше схеме, единой для дан-
ной группы. При этой проверке возвращается номер версии резидентного ви-
руса, если  он есть в оперативной памяти. Если номер версии резидентного
вируса меньше, чем номер версии вируса в зараженной программе, или вирус
в оперативной памяти отсутствует, то старшая версия вируса из зараженной
программы становится резидентной и перехватывает прерывания 09 и 21h.

   Заражение выполняется  при запуске  программы на  выполнение. Получив
управление по  функции 4Bh  прерывания 21h, вирус проверяет, является ли
запускаемая программа  зараженной, и  если нет,  то заражает данную про-
грамму на  диске. При  этом вирус  изменяет первые  14 байтов зараженной
программы и  дописывает в  конце программы собственное тело. Определение
зараженности программы  основано на  считывании последних 8 байтов зара-
женной программы.  Подобно вирусу RC-1701, RCE-1805 не проверяет, загру-
жается ли файл с защищенной дискеты или нет.

   Зараженные файлы  увеличиваются в размере на 1805-1820 байтов, причем
дата их  создания и атрибуты остаются неизменными. Заражение выполняется
однократно.

   Фаза проявления была описана выше. Никаких других несанкционированных
действий, кроме  проигрывания мелодии  при нажатии  клавиш CTRL-ALT-DEL,
вирус не выполняет.

   Резидентная часть  вируса обнаруживается путем просмотра списка рези-
дентных программ  (с помощью  утилит MAP,  SMAP, MMAP  и т.д.). При этом
видна "подозрительная" дополнительная программа, не имеющая ни имени, ни
родителя и  имеющая размер 1792 байта. При этом в графе "Hooked vectors"
не указано  ни одного перехваченного прерывания, что, конечно же, не со-
ответствует действительности.  Вирус обращается  к прерыванию 21h непос-
редственно, а  не с помощью команды INT, что обеспечивает обход простей-
ших фильтров типа VirBlk.

   Исторические сведения.  Данный вирус  был обнаружен  в Киеве  в  июле
1989 г. Одними из первых этот вирус исследовали В.Е.Еременко и Е.Ю.Порт-
ной, которые самостоятельно разработали для него  фаг в сентябре 1989 г.
Первым фагом  против данного  вируса, распространяемым  бесплатно,  была
вторая версия популярного киевского полифага Vdeath Ю.М.Ревзина, появив-
шаяся примерно  в это же время. В настоящее время вирус практически пол-
ностью уничтожен.

   Методы и  средства защиты.  Зараженность программы легко определяется
при визуальном  просмотре дампа  по последним байтам файла. Для входного
контроля можно  использовать полидетектор  Scan. Рекомендуемые  полифаги
приведены в  прил.1. Вирус  содержит примитивные  средства защиты против
трассировки и  обхода резидентных  средств защиты.  В частности, попытки
записи вируса  в  запускаемый  файл  не  обнаруживаются  ни  VirBlk,  ни
Anti4us2. Фильтр  Anti4us2 не  срабатывает на попытку вируса стать рези-
дентным. При  использовании Advanced  Disk Manager  вирус не в состоянии
попасть в  разделы винчестера,  для которых установлен статус READ ONLY.
Однако при  этом блокируется вызов программ. Имеется резидентная вакцина
(NeatVac).

          Фрагмент дампа дрозофилы, зараженной вирусом RCE-1805

000: E9B5079090909090 9090909090909090  ................
010: 9090909090909090 9090909090909090  ................
***  Последующие строки идентичны предыдущей ***
400: 4D08007000000000 0000000000000000  M..p............
410: 050EC32B60142602 5605E3281101FB2A  ...+`.&.V..(...*
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
490: 0672043412EAF0FF 00F0582EFF2E1C00  .r.4......X.....
4A0: 9C3D004B74613D00 C574483D01C57448  .=.Kta=..tH=..tH
4B0: 3D02C5744B3D03C5 740C9D2EFF2E1000  =..tK=..t.......
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
5F0: B900008BD18B1E22 00E843FE72E583FA  ......."..C.r...
600: 0075E03D200076DB 3D1DF09073D5A305  .u.= .v.=...s...
610: 07B80042B900008B D18B1E2200E81FFE  ...B......."....
620: 72C1BA2D00B90E00 B43FE812FE72B43D  r..-.....?...r.=
630: 0E0075AF813E2D00 4D5A740B813E2D00  ..u..>-.MZt..>-.
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .   AA0:
C400DC00C400AE00 A400AE00C400DC00  ................
AB0: F600DC00AE00DC00 F6000601DC00C400  ................
AC0: 0601F60025010601 0601FFFF19191919  ....%...........
AD0: 1919191919191919 3232191919191919  ........22......
AE0: 1919191919193232 1A191A1919191919  ......22........
AF0: 1A191A1919191E1A 191A191919191E19  ................
B00: 1919193232000493 91F47A1990        ...22.....z..


                    5.3.2.2. Вирус RСE-1760 (ТP-24,
                   Yankee Doodle-18 -- Янки дудль-18)

   Данный штамм практически не отличается от предыдущего.


                   Фрагмент дампа программы DUMY.COM,
                      зараженной вирусом RCE-1760

000: E9B8039090909090 9090909090909090  ................
010: 9090909090909090 9090909090909090  ................
020: 9090909090909090 9090909090909090  ................
030: 4D08006D00000000 0000000000000000  M..m............
040: 3903981460146402 56059D10E6049A11  9...`.d.V.......
050: 2000050045002100 000000012F909090   ...E.!...../...
060: 9090909090909090 909090FF2E10009C  ................
070: FA2EFF1E1400C353 502E8B1E2200B445  .......SP..."..E
080: E8ECFF72098BD8B4 3EE8E3FFEB01F858  ...r....>......X
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
0D0: 9C3D004B74613D00 C574483D01C57448  .=.Kta=..tH=..tH
0E0: 3D02C5744B3D03C5 740C9D2EFF2E1000  =..tK=..t.......
0F0: 9DFBF9CA0200B819 002EF6062B000275  ............+..u
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
6C0: 00C4000601F60025 0106010601FFFF19  .......%........
6D0: 1919191919191919 1919193232191919  ...........22...
6E0: 1919191919191919 1932321A191A1919  .........22.....
6F0: 1919191A191A1919 191E1A191A191919  ................
700: 191E191919193232 30009391F47A1890  ......220....z..
                              +----+
                             сигнатура


                 5.3.3. Подгруппа музыкальных самоедов

   В данную  подгруппу входят  наиболее совершенные штаммы данной группы
вирусов. По-видимому,  все представители данной группы играют в 17 ч ме-
лодию "Янки  Дудль Денди", поэтому их иногда называют Five o'clock (Пять
часов). Штаммы,  входящие в  данную подгруппу, увеличивают свои функцио-
нальные возможности с возрастанием номера версии. Стиль написания вируса
создает впечатление  перекодировки с  языка высокого  уровня.  Возможно,
прототип был предварительно написан на Турбо Паскале, отсюда, возможно и
произошло название  TP. По  другой  версии,  сообщенной  В.Бончевым,  ТР
являются инициалами техно-крысы, написавшей данную группу. Для структуры
этой подгруппы  характерно наличие многочисленных подпрограмм и активное
использование стека.  При анализе  дампов программ,  зараженных штаммами
данной подгруппы, обращает на себя внимание тот факт, что все они содер-
жат группы повторяющихся символов с кодом 05. Эта особенность существен-
но облегчает визуальное опознавание зараженных файлов при просмотре дам-
па.

   Начиная со штамма RCE-2661 (ТР-38), в них применяется защита от обна-
ружения фильтрами,  перехватывающими прерывание  21h. Примененный  прием
основан на  выполнении трассировки программ, "сидящих" на прерывании 21h
до попадания  в "оригинальный" обработчик MS DOS, и запоминании соответ-
ствующего адреса.  Кроме того,  именно с этого штамма наблюдается эффект
"самоизлечения" зараженной программы при попытке трассировки ее на зара-
женной вирусом машине.

   Среди данной  подгруппы впервые встречается попытка реализовать моди-
фикацию одного  вируса другим  вирусом. Начиная  со штамма  ТР-42, вирус
проверяет, заражен ли компьютер, на котором он распространяется, вирусом
Bx1-1C (Пинг-понг).  Если да, то выполняется модификация вируса Bx1-1C в
памяти таким  образом, что  в код  вируса вводится  специальный счетчик,
инициализируемый значением  255. После заражения дискеты вирус уменьшает
счетчик на  единицу и  при достижении  счетчиком значения нуль перестает
размножаться. Кроме  того, начиная  со штамма TP-44, мелодия играется не
ежедневно, а с вероятностью приблизительно 1/8, что несколько затрудняет
обнаружение вируса.

   Наиболее распространенным  представителем этой  группы является штамм
RCE-2885 (Five  o'clock; TP-44), с которого начнем описание представите-
лей данной группы.


                    5.3.3.1. Штамм RCE-2885 (TP-44,
             Yankee Doodle-2C -- Янки дудль-2С, Five o'clock)

   Вирус RСE-2885  является файловым резидентным вирусом, поражающим как
файлы типа  СОМ, так  и файлы  типа EXE. Заражение файлов происходит при
запуске на  выполнение соответствующих  программ. Заражение  COMMAND.COM
происходит сразу  после инсталляции  вируса в  верхние адреса  свободной
оперативной памяти,  поскольку  при  этом  затирается  транзитная  часть
COMMAND.COM. Зараженный командный процессор имеет длину 28197 при исход-
ной длине 25307.

   Зависимость работоспособности  вируса от версии MS DOS не обнаружена.
Проверка номера  версии в теле вируса не выполняется. Перехватывает пре-
рывания 1, 3, 1Ch, 21h. Дата создания и атрибуты заражаемого файла оста-
ются неизменными. Заражение выполняется однократно.

   При заражении  COM-файлов вирус  дописывает свое  тело в конец файла,
вставляя в  первые три байта команду перехода на начало вируса. Заражен-
ные COM-файлы  увеличиваются на  2885 (B45h)  байтов (с выравниванием на
границу параграфа).  Заражаются COM-файлы длиной от 20h до F277h байтов.
В конце  зараженного файла  расположена четырехбайтовая сигнатура вируса
7Fh, 39h, 2Ch, 00h.

   При заражении  EXE-файлов вирус  также дописывает  свое тело  в конец
файла с  выравниванием начала вируса на границу параграфа. При этом раз-
мер файла  увеличивается на  2881 (B41h)  байт. Длина при заражении EXE-
файлов не  контролируется. В конце зараженного EXE-файла четырехбайтовая
сигнатура отсутствует.

   При инсталляции  вирус узнает  длину исходного файла, восстанавливает
истинный стартовый адрес программы и проверяет наличие своей копии в па-
мяти компьютера. Если компьютер не заражен или заражен более ранней вер-
сией вируса,  то RCE-2885  копирует себя  либо в область памяти сразу за
телом программы,  либо в область, выделенную функцией ALLOC (21h-48h) и,
манипулируя с  MCB, остается резидентным в памяти, перехватывая прерыва-
ния 21h, 1Ch и 09h.

   Вирус RCE-2885  проверяет, загружается  ли файл  с защищенной дискеты
или нет. Поэтому он не препятствует загрузке любого СОМ-файла с защищен-
ной дискеты.  Резидентная часть вируса не обнаруживается путем просмотра
списка резидентных  программ. При этом вирус не детектируется программой
Release, а попытка запустить Release на зараженной машине приводит к вы-
даче сообщения  о том, что Release не может стать резидентным. Вирус об-
ходит контроль  резидентных фильтров,  следящих за записью в программные
файлы.

   Фаза проявления  данного вируса состоит в проигрывании с вероятностью
1/8 мелодии  "Янки Дудль Денди" в 17 ч (точнее, в 16 ч 59 мин 53 с). Ни-
каких разрушений или манипулирований с данными вирус не выполняет.

   При попытке  дизассемблирования дизассемблером Sourcer, а также трас-
сировке на зараженной машине наблюдается эффект "самовыкусывания" вируса
из зараженных  файлов. Этот эффект, впервые встретившийся именно в виру-
сах данной группы, достигается за счет контроля прерываний 1 и 3 при по-
лучении управления  по прерыванию  1Ch. По умолчанию процедуры обработки
этих прерываний состоят из одной команды возврата. При загрузке програм-
мы, перехватывающей  данные прерывания (программа трассировки или дизас-
семблер типа Sourcer), вирус устанавливает для указанных прерываний соб-
ственные процедуры  обработки. Последние  проверяют, не произошли ли эти
прерывания из кодового сегмента, в котором расположена резидентная часть
вируса, и  если да,  запускают подпрограмму  восстановления кода вируса,
тем самым отключая программу трассировки. Другими словами, контроль пре-
рываний 1 и 3 состоит в том, что, пока процедуры обработки этих прерыва-
ний состоят  из одной  команды возврата  из прерывания, никаких действий
вирусом не  производится, но  стоит загрузить  программу, модифицирующую
адреса обработчика данных прерываний (например, отладчик), как вирус ус-
тановит для них собственные процедуры обработки. Аналогичным образом ре-
ализовано самоизлечение  загружаемых в  трассировщик зараженных  файлов:
резидентная часть  вируса отслеживает момент загрузки программы в память
без исполнения (21h-4Bh, AH=03) и проверяет, загружают в память заражен-
ную программу  или нет. В последнем случае запускается подпрограмма "вы-
кусывания" вируса. Как уже указывалось, при заражении файлов, зараженных
предыдущими версиями  вируса, выполняется сначала "выкусывание", а затем
заражение данным штаммом.

   Исторические сведения. Впервые вирус был описан В.Бончевым под назва-
нием TP-44. Данный вирус был обнаружен в Киеве в сентябре 1989 г. Первым
фагом для данного вируса были программы RVC и RVE (для COM- и EXE-файлов
соответственно). Несколько  позднее  появилась  вторая  версия  полифага
Vdeath Ю.М.Ревзина.  В настоящее  время  данные  программы  представляют
только исторический интерес.

   Неформальные названия.  Помимо приведенных  в заголовке, используются
следующие названия: Янки Дудль, Музыкальный, Летучий Голландец, TP-44.

   Методы и  средства защиты. Зараженность программ видна при визуальном
просмотре дампа  (в конце  файла видны  характерные  строки,  содержащие
группы повторяющихся  символов с кодом 05h). Для входного контроля можно
использовать любой  подходящий полидетектор  или полифаг  (см.  прил.1).
Простейшие сторожа недостаточно эффективны против данного вируса. В час-
тности, попытки  записи вируса  в запускаемый  файл не обнаруживаются ни
VirBlk, ни  Anti4us2. Эффективна  защита на  уровне  дискового  драйвера
(Advanced Disk  Manager, Dcache  и т.д.). Как уже указывалось, вирус со-
держит примитивные средства защиты против трассировки.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-2885

100: E90E089090909090  9090909090909090 ................
110: 9090040090909090  9090909090909090 ................
120: 9090909090909090  9090909090909090 ................
130: 9090909090909090  909090C37A3D0000 ............z=..
140: F47A2C0000003C00  BE0A909090909090 .z,...<.........
150: 9090909090909090  9090909090909090 ................
160: 9090909090909090  9090601479026014 ..........`.y.`.
170: 790256058C4253FF  00F00500B6643B13 y.V..BS......d;.
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
1F0: 2C15C4172C15C417  C51A671CC51AC417 ,...,.....g.....
200: 2C15EF122C15C51A  2C15EF12C7112C15 ,...,...,.....,.
210: C417C711EF12E60F  C711C711FFFF0505 ................
220: 0505050505050505  0505090905050505 ................
230: 0505050505050505  0909050505050505 ................
240: 0505050505050505  0605050505050505 ................
250: 06050505050909FE  067A7DFE06FB7D74 .........z}...}t
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
       +----- начало инсталлятора вируса
       V
911:   E800005B81EBD4  072EC6875C00FFFC ....[.......\...
920: 2E80BF5B00007418  BE0A0003F3BF0001 ...[..t.........
930: B92000F3A40E2EFF  B76400061E50EB13 . .......d...P..
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
C20: 931DB0B9C6010692  375049E8D5719722 ........7PI..q."
C30: A6E64C50BE2A23BE  441DA1A66BA0E006 ..LP.*#.D...k...
C40: AA1AF62AC0022F75  99060F5B97023E64 ...*../u...[..>d
C50: 7DC8506608C4FA92  8E64751BA61BB932 }.Pf.....du....2
C60: BD0B3E616DE0C4B9  29CA9C170821EAEE ..>am...)....!..
C70: 7E85B1632AC37171  2CA0F28B590DF9D5 ~..c*.qq,...Y...
C80: 00F47A2C00                         ..z,.
       +----+
      сигнатура

                        5.3.3.2. Вирус RCE-2680
                (ТР-33, Yankee Doodle-21 -- Янки дудль-21)

   Этот штамм, по-видимому, является первым представителем подгруппы са-
моедов. Именно в нем была добавлена часть, обеспечивающая восстановление
оригинального кода вируса при изменении до 16 последовательных байтов (с
помощью самокорректирующегося кода Хемминга). Вирус играет мелодию "Янки
Дудль Денди" в 17 ч.

   Исторические сведения.  Данный вирус распространялся на вирусной дис-
кете В.Бончева в файле TP33VIR.COM, датированном 17 февраля 1989 г.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-2680

100: E99F069090909090  9090909090909090 ................
110: 9090909090909090  9090909090909090 ................
120: 9090909090909090  9090909090909090 ................
130: 9090909090909090  90909090909090C3 ................
140: 4D0800AF00000000  0000000000000000 M...............
150: 6002FD1660147402  5605631353FF00F0 `...`.t.V.c.S...
160: 20000500BB916A13  0000C60052002EC6  .....j.....R...
170: 5C077000558B5C07  7000010001909090 \.p.U.\.p.......
180: 9090909090909090  90909087DB87DB90 ................
190: 6402C711C711E60F  280EC711280EE60F d.......(...(...
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
1F0: 2C15EF12C7112C15  C417C711EF12E60F ,.....,.........
200: C711C711FFFF0505  0505050505050505 ................
210: 0505090905050505  0505050505050505 ................
220: 0909050505050505  0505050505050505 ................
230: 0605050505050505  0605050505090950 ...............P
240: 53B800008EC026C4  1C895D028C450426 S.....&...]..E.&
250: 803FCF740A268B07  890526C707CD1C5B .?.t.&....&....[
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
         +----  начало инсталлятора вируса
         V
7A2:     E800005B81EB  65065053BB2100F8 C....[..e.PS.!..
7B0: B803C5CD215B7223  83FCF0721E2E8B97 ....![r#...r....
7C0: 0300428CD903D18E  C28BF38BFEB9780A ..B...........x.
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
B90: 4390CFD2EF3B32E9  5F393E674E4B471B C....;2._9>gNKG.
BA0: D22B7A58EC6C90D9  E60A21B50D5FB446 .+zX.l....!.._.F
BB0: 40009391F47A2190                    @....z!
             +----+
            сигнатура

                        5.3.3.3. Вирус RCE-2568
                (ТР-34, Yankee Doodle-22 -- Янки дудль-22)


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-2568

100: E98F069090909090  9090909090909090 ................
110: 9090909090909090  9090909090909090 ................
120: 9090909090909090  9090909090909090 ................
130: 9090909090909090  90909090909090C3 ................
140: 6002FD1660147402  5605233C53FF00F0 `...`.t.V.#<S...
150: 2000050093916A13  0000B60042002EA3  .....j.....B...
160: 5C07700087EC5C07  7000010001909090 \.p...\.p.......
170: 9090909090909090  90909087DB87DB90 ................
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
1E0: 2C15EF12C7112C15  C417C711EF12E60F ,.....,.........
1F0: C711C711FFFF0505  0505050505050505 ................
200: 0505090905050505  0505050505050505 ................
210: 0909050505050505  0505050505050505 ................
220: 0605050505050505  0605050505090950 ...............P
230: 53B800008EC026C4  1C895D028C450426 S.....&...]..E.&
240: 803FCF740A268B07  890526C707CD1C5B .?.t.&....&....[
...  .. .. .. .. .. .. .. .. .. .. ..   . . . . . . . .
         +----  начало инсталлятора вируса
         V
792:     E800005B81EB  55065053BB2200F8 C....[..U.PS."..
7A0: B803C5CD215B7203  E9AE00598CC88ED8 ....![r....Y....
7B0: 8EC02E8A87070A2E  A200018BC18B8F02 ................
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
B10: 46A9D1AE675742D9  6A5B8E0E1F21D50A F...gWB.j[...!..
B20: 4FFC427B17B1F9F2  684532D06EF9DDA4 O.B{....hE2.n...
B30: DC014D1AFC655125  DD88256102BD0D0C ..M..eQ%..%a....
B40: 40009391F47A2290                    @....z"
             +----+
            сигнатура



                        5.3.3.4. Вирус RCE-2756
               (ТР-38, Yankee Doodle-26 -- Янки дудль-26)

   В данном  штамме добавлена логика, обеспечивающая обход фильтров, пе-
рехватывающих прерывание  21h. Примененный  прием основан  на выполнении
трассировки программ, "сидящих" на прерывании 21h до попадания в "ориги-
нальный" обработчик  MS DOS и запоминании соответствующего адреса. Кроме
того, именно с этой версии наблюдается эффект "самоизлечения" зараженной
программы при попытке трассировки ее на зараженной вирусом машине.

   Исторические сведения.  Данный вирус распространялся на вирусной дис-
кете В.Бончева в файле TP38VIR.COM, датированном 28 февраля 1989 г.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-2756

100: E9DB079090909090  9090909090909090 ................
***   Последующие строки идентичны предыдущей ***
120: 9090909090909090  9090909090909090 ................
130: 9090909090909090  90909090909090C3 ................
140: F47A260000004000  400A909090909090 .z&...@.@.......
150: 9090909090909090  9090909090909090 ................
160: 9090909090909090  9090720EA0196014 ..........r...`.
170: 74025605D656E008  A01920000500FABB  t.V..V... .....
180: 28140000DC006800  2EA35C07700087EC (.....h...\.p...
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
200: EF122C15C51A2C15  EF12C7112C15C417 ..,...,.....,...
210: C711EF12E60FC711  C711FFFF05050505 ................
220: 0505050505050505  0909050505050505 ................
230: 0505050505050909  0505050505050505 ................
240: 0505050505050605  0505050505050605 ................
250: 0505050909505333  C08EC026C41C895D .....PS3...&...]
260: 028C450426803FCF  740A268B07890526 ..E.&.?.t.&....&
270: C707CD1C5B58C356  57BE0400BF4800E8 ....[X.VW....H..
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
    начало инсталлятора вируса ----+
                                   V
8DE:                               E800 ..U..t...R.QC...
8E0: 005B81EBA107FC2E  80BF5600007418BE .[........V..t..
8F0: 0A0003F3BF0001B9  2000F3A40E2EFFB7  ....... .......
...  .. .. .. .. ..    .. .. .. .. ..   . . . . . . . .
BC0: F0435C6B7478F6AE  05B22AD44954519F .C\ktx....*.ITQ.
BD0: DD99113FEAE02D2E  6DCC95C81233C43E ....?.-.m....3.>
BE0: 5A2B8B33E11C3E88  C4806AC3DEFF6F33 Z+.3..>...j...o3
BF0: 44223341E9BC133D  CA1B92C402A0D2FD D"3A...=........
C00:|F47A2600                            .z&
    +-----+
   сигнатура



                        5.3.3.5. Вирус RCE-2901
               (ТР-45, Yankee Doodle-2D -- Янки дудль-2D)

   Данный вирус отличается от TP-44 лишь незначительными деталями.

   Исторические сведения.  Вирус  распространялся  на  вирусной  дискете
В.Бончева в  файле COMMAND.VIR.  По-видимому,  вирус  разработан  весной
1989 г.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-2901

000: E906089090909090 9090909090909090  ................
...  .. .. .. .. ..   .. .. .. .. ..    . . . . . . . .
030: F47A2D0000003000 C60A909090909090  .z-...0.........
040: 9090909090909090 9090909090909090  ................
050: 9090909090909090 9090390398146014  ..........9...`.
...  .. .. .. .. ..   .. .. .. .. ..    . . . . . . . .
100: C417C711EF12E60F C711C711FFFF0505  ................
110: 0505050505050505 0505090905050505  ................
120: 0505050505050505 0909050505050505  ................
130: 0505050505050505 0605050505050505  ................
140: 06050505050909FE 067A7DFE06FB7D74  .........z}...}t
150: 05EA007C0000FC33 C08EC0BE2A7DBF4C  ...|...3....*}.L
...  .. .. .. .. ..   .. .. .. .. ..    . . . . . . . .
B60: DBDB30252E0A0049 34C355356A362F79  ..0%...I4.U5j6/y
B70: 2B8E340D1D0D0629 F94636B8AD18F6AA  +.4....).F6.....
B80: 00F47A2D00                         ..z-.
       +----+
     B-сигнатура



                        5.3.3.6. Вирус RCE-2932
               (ТР-41, Yankee Doodle-29 -- Янки дудль-29)

   Разрушение или  модификация данных  в вирусе  не предусмотрена. Длина
вируса составляет 2932 (B74h) байтов. Заражаются COM-файлы длиной от 20h
до F247h  байт и  EXE-файлы любой  длины. Код  вируса отличается от кода
RCE-2885 лишь  меньшей степенью  отработанности (не  выделены  некоторые
подпрограммы, поэтому  длина вируса  больше). Отличия в проявлениях сво-
дятся к тому, что в 17 ч мелодия играется всегда.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-2932

000: E92F089090909090 9090909090909090  ./..............
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
030: F47A290000003000 EE0A909090909090  .z)...0.........
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
110: 0505050505050505 0505090905050505  ................
120: 0505050505050505 0909050505050505  ................
130: 0505050505050505 0605050505050505  ................
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
B60: 419EBF488A06A7BA 0A8993557831908F  A..H.......Ux1..
B70: B0BAA467FDFB369D F825859828EEBB8E  ...g..6..%..(...
B80: A4276E3D35E3DC9E 472D3C7C5AE5D407  .'n=5...G-<|Z...
B90: 805C01401F4CBCFC 3DC3E86DA14C4554  .\.@.L..=..m.LET
BA0: F47A2900                           .z).
     +----+
    сигнатура

              5.4. Группа Черных мстителей (Dark Avenger)

   Эта группа является одной из наиболее опасных групп вирусов. В насто-
ящее время  включает порядка двадцати вирусов, из которых два -- RCE-1800
(Dark  Avenger)   и  RCE-02000  (Anti-Bontchev)  --  получили  глобальное
распространение.  Как  уже  указывалось,  данная  группа  разработана  в
Болгарии техно-крысой,  называющей себя  Dark Avenger,  который  активно
распространяет не только зараженные ими программы, но и исходные тексты.
Эта техно-крыса  также специально  троянизирует антивирусные  программы,
заражая их  новыми типами  вирусов и загружая в BBS полученную троянскую
программу под  видом новой  версии. Судя  по некоторым его поступкам, не
исключено, что  Dark Avenger является криминально ориентированным психо-
патом и,  тем самым,  представляет значительную  общественную опасность.
Остается лишь  сожалеть об  отсутствии в Болгарии, как впрочем и в СССР,
законов, по  которым техно-крыс  можно было  бы привлекать  к  уголовной
ответственности. В  США или Великобритании за подобную деятельность Dark
Avenger,  если   бы  его  признали  психически  полноценным,  провел  бы
несколько лет за тюремной решеткой.

   Код вирусов  этой группы  свидетельствует о  глубоком знании  MS DOS,
причем с  патологическим пристрастием  к деталям.  Возможно, что в своей
"легальной" деятельности Dark Avenger так или иначе связан с разработкой
сетевого программного обеспечения.


                         5.4.1. Вирус RCE-1800
             (Dark Avenger -- Черный мститель; Eddie -- Эдди)

   Вирус RCE-1800 получил свое название в связи с тем, что в теле вируса
содержатся две достаточно длинные текстовые строки:

   1. "Eddie  lives... somewhere  in time"  (в начале вируса, т.е. сразу
после конца зараженного СOM-файла).

   2. "This  program was  written in  the city of Sofia (C) 1988-89 Dark
Avenger".

   Формально RCE-1800  является файловым резидентным вирусом, поражающим
как файлы типа СОМ, так и файлы типа EXE. Это первый попавший в СССР ви-
рус, стратегия  размножения которого  предусматривает заражение программ
не только  при их  выполнении, но и при других операциях доступа к соот-
ветствующим файлам. Поэтому при отсутствии противодействия RCE-1800 раз-
множается гораздо  быстрее ранее рассмотренных вирусов. Помимо заражения
при запуске программ на выполнение, файлы заражаются при создании, пере-
именовании, открытии  и закрытии  (прерывания 21h-4Bh, 21h-3Ch, 21h-5Bh,
21h-56h, 21h-3Dh, 21h-2h). Такая стратегия размножения делает этот вирус
весьма опасным,  поскольку, если в зараженной системе запустить програм-
му, систематически просматривающую файлы во всех подкаталогах (например,
ревизор), то  большая часть СOM- и EXE-файлов будет в результате зараже-
на.

   При запуске  зараженной программы  вирус сначала  проверяет наличие в
оперативной памяти  своей копии. При этом копия проверяется полностью, и
в случае  обнаружения изменений  с этого места в память записывается ис-
ходный код  вируса. Это  существенно затрудняет  нейтрализацию вируса  в
оперативной памяти.  Если вирус  не нашел в оперативной памяти своей ко-
пии, то  он загружается  в верхнюю область системной памяти, а затем ре-
зервирует для себя участок памяти, манипулируя с MCB и используя функции
MS DOS (выделения, освобождения и изменения размеров выделенной памяти).
При загрузке  в старшие  адреса памяти  вирус затирает  транзитную часть
COMMAND.COM. Поэтому  при первой  же команде  с консоли транзитная часть
вызывается повторно, что и приводит к ее заражению.

   На фазе  инсталляции вирус  определяет расположение в ПЗУ обработчика
прерывания 13h  как для дискеты, так и для жесткого диска. Все необходи-
мые сведения для этой цели он берет из векторов 40h и 41h, где содержат-
ся, соответственно,  адрес обработчика прерывания 13h в ПЗУ и адрес таб-
лицы параметров  для винчестера.  Алгоритм определения адреса прерывания
13h в  ПЗУ, используемый  вирусом, не  универсален, и он работает не для
всех типов IBM-совместимых компьютеров. Помимо прерывания 13h, вирус пе-
рехватывает прерывания  21h и 27h. Прерывание 21h используется стандарт-
ным образом  (отслеживаются приведенные  выше подфункции), а прерыванием
27h вирус  пользуется для  того, чтобы проверять, не изменился ли вектор
21h, и при необходимости восстанавливать его.

   Зараженные COM-файлы  увеличиваются в  размере на 1800 байтов, причем
дата их  создания и атрибуты остаются неизменными. Заражение выполняется
однократно. При  заражении вирус  дописывает свое  тело в  конец  файла,
вставляя в  первые три байта команду перехода на начало вируса. Выравни-
вание на  границу параграфа  для COM-файлов не выполняется. Инфицируются
COM-файлы длиной от 1775 (6Fh) до 63148 (F6ACh) байтов. В силу сказанно-
го выше, COMMAND.COM является наиболее подверженной заражению данным ви-
русом программой.  Для версии  3.3 зараженный  COMMAND.COM имеет  размер
27107 байтов  (если его первоначальный размер был 25307 байтов). Очевид-
но, что  при заражении  не имеет значения, где расположен командный про-
цессор, лишь бы диск был доступен для записи.

   Заражение EXE-файлов выполняется стандартно, за исключением того, что
вирус не сохраняет в своем теле исходной длины заражаемого файла. Однако
восстановление длины  программы все же возможно, поскольку вирус запоми-
нает в  теле некоторый байт. При заражении EXE-файлов вирус дописывается
в конец файла с выравниванием на границу параграфа (т.е. приращение дли-
ны колеблется в диапазоне 1800--1815 байтов). Инфицируются EXE-файлы дли-
ной больше 1775 (6Fh) байтов.

   Помимо COM-  и EXE-файлов,  вирус иногда  заражает файлы  данных. Это
свойство характерно  не только для данного вируса, но и для любого виру-
са, который  заражает открываемые  файлы. Зараженные таким образом файлы
данных можно лечить обычным фагом, указав соответствующее расширение.

   Фаза проявления  данного вируса  связана с  разрушением  определенных
секторов винчестера и наступает после определенного количества инсталля-
ций вируса (запусков первой зараженной программы после перезагрузки сис-
темы,  в   ходе  которых  он  становится  резидентным).  При  зараженном
COMMAND.COM количество инсталляций равно количеству перезагрузок системы
после заражения.  Вирус ведет  счетчик инсталляций  в байте со смещением
0Аh (10)  бут-сектора. Чтение бут-сектора выполняется с помощью прерыва-
ния 25h,  что возможно  только для  ОС, не поддерживающей диски размером
более 32M.  Сразу после  очередной инсталляции вирус анализирует 2 байта
(8-й и 10-й) бут-сектора диска, с которого была запущена зараженная про-
грамма. Десятый  байт используется  в качестве  счетчика, который  вирус
увеличивает на 1 при каждой инсталляции, сохраняя увеличенное значение в
том же  байте. При каждой 16-ой инсталляции он уничтожает содержимое од-
ного из  секторов винчестера  (номер, по-видимому, выбирается случайно и
зависит от  значения 8-го  байта бут-сектора), записывая туда первые 512
байтов своего тела. При этом первые байты запорченного сектора будут со-
держать фразу  "Eddie lives...somewhere  in time", что позволяет выявить
все уничтоженные  сектора глобальным  контекстным поиском  по диску. При
заражении файлов  или уничтожении  секторов вирус  использует прерывание
13h "напрямую" --  управление передается  в ПЗУ, минуя текущий обработчик
прерывания. Это позволяет обходить проверки резидентных сторожей.

   Вирус предпринимает  ряд мер по маскировке своего наличия в оператив-
ной памяти.  При старте  любой программы вирус помечает программный сег-
мент как последний и становится невидимым для этой программы, по оконча-
нии работы программы вирус помечает программный сегмент как непоследний.
При завершении  программы вирус  восстанавливает первоначальное значение
прерывания 21h,  если оно было изменено программой. Вирус вставляет себя
первым в  цепочку программ, получающих управление по прерыванию 21h, а в
дальнейшем не  позволяет программам  встать раньше него в указанном спи-
ске. Этот  метод "всплытия" позволяет обойти простейшие резидентные сто-
рожа. Вирус  обходит контроль программ, следящих за прерыванием 13h, оп-
ределяя значение  этого вектора  при инсталляции и в дальнейшем напрямую
обращаясь по соответствующему адресу.

   Вирус работоспособен  на версиях  3.х и  4.х MS DOS.  Проверка номера
версии в  теле вируса не выполняется. На компьютерах с процессором 80386
вирус неработоспособен.
   Исторические сведения.  Впервые вирус  описал  В.Бончев  [Бончев89г].
RCE-1800 написан  в первой  половине 1989 г., причем техно-крыса активно
распространяла его исходный текст. В Киеве появился вместе с компьютера-
ми, приобретенными  у  одного  из  московских  кооперативов  в  сентябре
1989 г. Одним из первых этот вирус выделил В.О.Ткаченко. Фактически дан-
ный вирус был первым попавшим в СССР вирусом, который мог уничтожать ин-
формацию в  базах данных, а не только выполняемые файлы, и ряд организа-
ций серьезно  пострадал в  результате повреждения вирусом их баз данных.
Первые фаги  для данного  вируса не  проверяли его наличие в оперативной
памяти, поэтому наблюдались случаи, когда при запуске фага при резидент-
ном вирусе фаг обнаруживал зараженный файл, "выкусывал" вирус, а при за-
крытии файла он снова оказывался зараженным. Более того, при запуске де-
тектора или  ревизора, не проверявших наличие вируса в оперативной памя-
ти, заражались  все проверявшиеся  файлы, которые  еще не были заражены.
Поэтому основной  особенностью борьбы  с данным вирусом являлось быстрое
распространение понимания необходимости нейтрализации резидентного виру-
са у разработчиков фагов и не менее быстрое понимание необходимости про-
водить "лечение",  только загрузившись с эталонной, защищенной от записи
дискеты. В силу особой опасности заражения данным вирусом многие органи-
зации перешли  на сплошной  входной контроль  поступающего  программного
обеспечения.

   В Москве  получил распространение  штамм вируса,  в котором сообщение
"Eddie lives...  somewhere in  time" заменено  на "B O R O D A мстит  во
времени".

   Неформальные названия.  Полидетектор Scan называет данный вирус "Dark
Avenger virus  [Dav]". Помимо  приведенных в заголовке, используются на-
звания Avenger  (Мститель), Sofia  (София), Diana (Диана). Последнее на-
звание связано с тем, что в теле вируса содержится строка "Diana P".

   Методы  и   средства  защиты.  Зараженность  файла  легко  определить
визуальным просмотром  дампа. Для входного контроля следует использовать
любой из  рекомендованных в  прил.1 фагов  в сочетании  с полидетектором
Scan. Выявление поврежденных файлов можно выполнить с помощью глобально-
го контекстного поиска по диску, обеспечиваемого, например, PCTools. Лю-
бые действия  по анализу  содержимого диска следует выполнять только при
условии предварительной загрузки операционной системы с эталонной, защи-
щенной от  записи, дискеты. При исследовании вируса автор пренебрег этим
правилом, запустив  ревизор после  заражения COMMAND.COM.  В результате,
оставаясь резидентным,  вирус последовательно  заразил порядка 50 COM- и
EXE-файлов.

         Фрагмент дампа дрозофилы, зараженной вирусом RCE-1800

000: E955079090909090 9090909090909090  .U..............
010: 9090909090909090 9090909090909090  ................
***   последующие строки идентичны предыдущей   ***
6F0: 4564646965206C69 7665732E2E2E736F  Eddie lives...so
700: 6D65776865726520 696E2074696D6521  mewhere in time!
710: 00009023121E8CC3 83C3102E039CFF06  ...#............
720: 2E899C53002E8B9C FD062E899C51008C  ...S.........Q..
730: C383C3102E039C03 078ED32E8BA40107  ................
740: EA00000000BF0001 81C60507A4A58B26  ...............&
750: 060033DB53FF64F5 E800005E81EE6B00  ..3.S.d....^..k.
760: FC2E81BC05074D5A 740EFA8BE681C408  ......MZt.......
770: 08FB3B26060073CD 5006561E8BFE33C0  ..;&..s.P.V...3.
780: 508ED8C4064C002E 8984F4062E8C84F6  P....L..........
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
D50: 164F072E8C1E5107 33DB8EDBC7068400  .O....Q.3.......
D60: EE028C0E86005A5B 581FC35053B462E8  ......Z[X..PS.b.
D70: 72FD8CC8484B8EDB F9131E03003BD872  r...HK.......;.r
D80: F55B58C3A15B07BA 1000F7E2C3546869  .[X..[.......Thi
D90: 732070726F677261 6D20776173207772  s program was wr
DA0: 697474656E20696E 2074686520636974  itten in the cit
DB0: 79206F6620536F66 6961202843292031  y of Sofia (C) 1
DC0: 3938382D38392044 61726B204176656E  988-89 Dark Aven
DD0: 6765720080FC0375 0F80FA807305EAC8  ger....u....s...
DE0: 0EFD18EAC80EFD18 EAC80EFD18000121  ...............!
DF0: 0090909090909090                   ........


                         5.4.2. Вирус RCE-02000
                  (V2000, Anti-Bontchev -- Анти-Бончев)

   Вирус RCE-02000 получил свое название в связи с тем, что в теле виру-
са содержатся две достаточно длинные текстовые строки:

   1. "Zopy  me -- I  want to  travel" (в начале вируса, т.е. сразу после
конца зараженной программы).

   2. "(c) 1989 by Vesselin Bontchev" (в конце тела   вируса, т.е. в по-
следнем блоке зараженного файла).

   Вирус вызывает  зависание MS DOS  при  запуске  программ,  содержащих
строку "(c)  1989 by  Vesselin Bontchev."  В теле  вируса имеется  также
строка "Диана  П." (в  альтернативной кодировке).  Данный вирус является
довольно сильно  "доработанным" штаммом  RCE-1800. Это первый попавший в
СССР вирус,  маскирующий приращение  длины зараженных файлов. Маскировка
основана на  том, что вирус помечает зараженные файлы, проставляя значе-
ние 62  с в дате создания файла, как вирусы венской группы (С-648). Кон-
тролируя функции MS DOS типа FindFirst и FindNext, используемые при про-
смотре оглавления  командой DIR,  вирус вычитает  2000 из  значения поля
длины таких  элементов оглавления,  тем самым  маскируя увеличение длины
зараженных файлов.  Следует отметить, что оболочки типа Norton Commander
самостоятельно интерпретируют  содержимое секторов  с каталогами, не ис-
пользуя указанных  выше функций  DOS. Для  них этот  метод маскировки не
действует.

   Помимо маскировки увеличения длины зараженных файлов, вирус использу-
ет ряд  недокументированных прерываний,  что позволяет обходить слежение
за прерываниями  13h и 26h. Зараженные COM-файлы увеличиваются в размере
точно на  2000 байтов, причем дата их создания и атрибуты остаются неиз-
менными. Заражение выполняется однократно. При заражении вирус дописыва-
ет свое тело в конец файла, вставляя в первые три байта команду перехода
на начало  вируса. Выравнивание  на границу  параграфа для COM-файлов не
выполняется. Инфицируются COM-файлы длиной от 1959 байтов.

   Заражение EXE-файлов  характерно тем,  что, несмотря на то, что вирус
выполняет выравнивание  всего тела  на границу параграфа, приращение ис-
кусственно поддерживается  постоянным и равным 2000 байтов. Инфицируются
EXE-файлы длиной больше 2000 байтов.

   Стадия проявления, как и у вируса RCE-1800, состоит в уничтожении от-
дельных секторов  диска (в них записывается нулевой сектор текущего дис-
ка). Если  на диске  имеются файлы,  иммунизированные от  вируса C-648 и
имеющие длину  менее 2000  байтов, то  для таких файлов вирус показывает
"сумаcшедшее" значение длины (несколько мегабайт).

   Исторические сведения. Вирус обнаружен в Москве в апреле 1990 г. Пер-
вым данный  вирус исследовал Д.Н.Лозинский. Обработка RCE-02000 включена
в Aidstest в апреле 1990 г. (начиная с версии 29 от 18.04.90).

   Неформальные  названия.   Полидетектор  Scan  называет  данный  вирус
"V2000". Кроме приведенных в заголовке, используют еще название Диана П.
(в теле вируса содержится строка "Диана П.").

   Методы и  средства защиты.  Зараженность файла  видна  при  просмотре
дампа. Для входного контроля можно использовать любой из рекомендованных
в прил.1 полифагов в сочетании с  полидетектором Scan.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-02000

000: E935089090909090 9090909090909090  .5..............
010: 9090909090909090 9090909090909090  ................
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
7D0: 909090909090C31A 5A6F7079206D6520  ........Zopy me
7E0: 2D20492077616E74 20746F2074726176  - I want to trav
7F0: 656C000090511381 C6B5078CC383C310  el...Q..........
800: 2E035C022E899C96 F82E8B1C2E899C94  ..\.............
810: F88CC383C3102E03 5C068ED32E8B6404  ........\.....d.
820: EA00000000BF0001 81C6BD07A4A58B26  ...............&
830: 060033DB53FF64F5 E800005E81EE6300  ..3.S.d....^..c.
840: FC2EF69489072E81 BCBD074D5A740EFA  ...........MZt..
850: 8BE681C4C008FB3B 26060073C8500656  .......;&..s.P.V
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
F00: 268B0E06002BFFBE 8907ACF2AE750D51  &....+.......u.Q
F10: 57B91100F3A65F59 75EDEBE4C6061308  W....._Yu.......
F20: 00EBC6E8AAFDB451 CD212BFF8BC74B13  .......Q.!+...K.
F30: D88EDB8B4503803D 5A72F43B7D0175A9  ....E..=Zr.;}.u.
F40: 438EC33D00107203 B80010B103D3E08B  C..=..r.........
F50: C8F3ABEB94286329 2031393839206279  .....(c) 1989 by
F60: 2056657373656C69 6E20426F6E746368   Vesselin Bontch
F70: 65762E0080FC0375 0F80FA807305EA59  ev.....u....s..Y
F80: EC00F0EA26AF00F0 EA75013E140001A3  ....&....u.>....
F90: 1490909090E90201 84A8A0ADA0208F2E  ............. ..
FA0: 00558BECFF76069D                   .U...v..




                       5.5. Группа Нео-мстителей;
                    вирус RCE-1277 (Murphy -- Мерфи)

   Поскольку исходный  текст вируса  RCE-1800 распространялся в Болгарии
достаточно широко,  неудивительно, что  появились вирусы,  основанные на
использовании кода  RCE-1800.   Мы рассмотрим  лишь один  пример вирусов
данной группы,  которую можно  назвать нео-мстителями, -- вирус RCE-1277.
В коде этого вируса заметен плагиат из RCE-1800, причем без достаточного
понимания функций копируемых фрагментов.

   Неформальное название вируса RCE-1277 связано с тем, что в теле виру-
са содержатся достаточно длинные текстовые строки:


  Hello, I'm Murphy.
  Nice to meet you friend.
  I'm written since Nov/Dec.
  Copywrite (c)1989 by Lubo & Ian, Sofia, USM Laboratory.

   Формально вирус RCE-1277 -- файловый резидентный вирус, поражающий как
файлы типа СОМ, так и файлы типа EXE. Заражение происходит как при запу-
ске программ на выполнение, так и при открытии файлов (21h-3Вh, 21h-4Bh,
21h-6Ch). Вирус дописывает свое тело в конец файла.

   Вирус RCE-1277 заражает командный процессор, если он не имеет атрибу-
та READ ONLY. Пораженный COMMAND.COM имеет размер 27107 байтов (если его
первоначальный размер  был 25307  байтов). Механизм  заражения идентичен
использованному в вирусе RCE-1800.

   Файлы, имеющие  атрибут READ ONLY, вирус не заражает. Проверка номера
версии в теле вируса не выполняется. Тип файла определяется вирусом пра-
вильно, независимо  от используемого  расширения.  Зараженные  COM-файлы
увеличиваются в  размере на 1277 байтов, причем дата их создания и атри-
буты остаются неизменными. Заражение выполняется однократно. При зараже-
нии вирус дописывает свое тело в конец файла, вставляя в первые три бай-
та команду  перехода на начало вируса. Выравнивание на границу параграфа
для COM-файлов  не выполняется. Инфицируются COM-файлы длиной свыше 1277
(6Fh) байтов.  Заражение EXE-файлов  выполняется путем  дописывания тела
вируса в  конец файла  без предварительного выравнивания тела на границу
параграфа.

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

   Фаза проявления состоит в том, что с 10 до 11 час в динамике начинает
раздаваться довольно  неприятный высокочастотный  свист  частотой  около
12 кГц, причем  интенсивность свиста пропорциональна частоте выдачи пре-
рывания 21h в системе.

   В целом вирус производит впечатление не до конца отлаженного. В част-
ности, при попытке заражения защищенной от записи дискеты выдается стан-
дартное сообщение  "Abort, Retry Є". Это связано с ошибкой в обработчике
прерывания 24h.

   Вирус работоспособен  как на MS DOS 3.x, так на на версии 4.х, причем
им используется  функция 21-С600, реализованная только в версиях MS DOS,
начиная с 4.0. Вирус неработоспособен на процессоре 8086 (8088).

   Исторические сведения.  Из зарубежных  источников, попавших  в  СССР,
первое описание  данного вируса приведено, по-видимому, в  списке П.Хоф-
фман. Известны  авторы этого  болгарского вируса RCE-1277, которые якобы
хотели таким  способом "насолить"  своему начальнику.  В Болгарии  начал
распространяться с  конца 1989 г. В Киеве первым вирус обнаружил А.Л.Ше-
ховцов (июнь  1990 г.). Несколько  позднее он  был независимо  выявлен в
Москве. Первыми  фагами для  данного вируса  были  SOS  Е.Н.Сусликова  и
NeaFag В.В.Пономаренко.

   Неформальные названия. Помимо приведенного в заголовке, неизвестны.

   Методы  и  средства  защиты.  Детектирование  несложно.  Зараженность
программы видна  при визуальном  просмотре дампа.  Для входного контроля
можно использовать  рекомендуемые в  прил.1 фаги  или полидетектор  Scan
(версии 77 и более поздние).


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-1277

000: E9FD079090909090 9090909090909090  ................
010: 9090909090909090 9090909090909090  ................
***   последующие строки идентичны предыдущей ***
7F0:  090909090909090 9090909090909090  ................
       +--- псевдоначало инсталлятора (первый переход)
    +-----+
800:|E97E039090909090 9090909090909090  .~..............
810: 9090909090909090 9090900000000060  ...............`
820: 00F1042100000004 00050EC32B5605E3  ...!........+V..
830: 287A0F70007A0F70 002048656C6C6F2C  (z.p.z.p. Hello,
840: 2049276D204D7572 7068792E204E6963   I'm Murphy. Nic
850: 6520746F206D6565 7420796F75206672  e to meet you fr
860: 69656E642E204927 6D20777269747465  iend. I'm writte
870: 6E2073696E636520 4E6F762F4465632E  n since Nov/Dec.
880: 20436F7079777269 7465202863293139   Copywrite (c)19
890: 3839206279204C75 626F20262049616E  89 by Lubo & Ian
8A0: 2C20536F6669612C 2055534D204C6162  , Sofia, USM Lab
8B0: 6F7261746F72792E 20E88F023D594B75  oratory. ...=YKu
8C0: 09558BEC836606FE 5DCF80FC4B74123D  .U...f..]...Kt.=
8D0: 003D740D3D006C75 0580FB007403E9A5  .=t.=.lu....t...
8E0: 00061E5756555251 5350E8C9013D006C  ...WVURQSP...=.l
8F0: 75028BD6B980008B F2468A040AC0E0F9  u........F......
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .

       +------- J-сигнатура ----------+
       |                              |
B80: C31EE80000B8594B CD217203E928015E| ......YK.!r..(.^
B90: 568BFE33C0501FC4 064C002E8984ACFC  V..3.P...L......
BA0: 2E8C84AEFCC41E84 002E899DA4FC2E8C  ................
BB0: 85A6FCA102013D00 F07569B280A10601  ......=..ui.....
BC0: 3D00F0741C80FCC8 725A80FCF47355A8  =..t....rZ...sU.
BD0: 7F75518ED8813E00 0055AA75478A1602  .uQ...>..U.uG...
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
CB0: 8600FBFE0E7B045E 2E81BC7EFC4D5A75  .....{.^...~.MZu
CC0: 1D1F2E8B849AFC2E 8B9C98FC0E592BC8  .............Y+.
CD0: 03CB512EFFB496FC 1E07E895FECB582E  ..Q...........X.
CE0: 8B847EFC2EA30001 2E8B8480FC2EA302  ..~.............
CF0: 01B80001500E1F1E 07E876FEC3        ....P.....v..

           5.6. Группа "второй половины таблицы прерываний";
                           вирус RC-492 (sI)

   Данная группа  включает вирусы, которые при заражении оперативной па-
мяти размещают  свое тело во второй половине таблицы прерываний. Очевид-
но, что такое размещение накладывает жесткие ограничения на размер виру-
са и  выполняемые функции.  Из-за ограничения  длины возможно  заражение
только одного типа файлов (обычно типа СОМ).  В настоящее время известны
два вируса этого типа. Один из них рассмотрен ниже, а второй -- в разделе
о троянизирующих вирусах.

   Неформальное название  sI связано с тем, что со смещением 3 от начала
зараженной программы  стоят байты  "sI", служащие  для опознания вирусом
зараженных им программ. Формально данный вирус является резидентным фай-
ловым вирусом,  заражающим COM-файлы  при запуске  их на выполнение. Код
вируса содержит  много ошибок  и неточностей.  Длина  вируса  492  байта
(1ECh). Вирус работоспособен только на компьютерах серии AT. Это связано
с наличием  команд, отсутствующих  в микропроцессоре 8088/8086. Проверка
версии MS DOS  в теле  вируса отсутствует. Зависимость работоспособности
вируса от версии MS DOS не обнаружена.

   Стратегия заражения -- при запуске файлов на выполнение. Файлы заража-
ются однократно. При заражении выполняется выравнивание на границу пара-
графа. Максимальная  длина заражаемого файла не проверяется, поэтому ви-
рус уничтожает  файлы, длина  которых после  заражения превысит 64К. Как
уже указывалось, в качестве признака зараженности файла вирус использует
приведенную выше  строку "sI".  При запуске  зараженной программы  вирус
ищет в главном каталоге диска С файл с именем COMMAND.COM и, если он бу-
дет найден, пытается его заразить.

   При заражении  RС-492 дописывается  в конец  программы и одновременно
вставляет в  первые три байта COM-файла команду перехода на тело вируса.
При этом размер файла увеличивается на 492 + байты выравнивания (в каче-
стве байтов  выравнивания вирус вставляет нули). Из-за ошибки в теле ви-
руса файлы с длиной, кратной 16, заражаются с вставкой 16 нулей "для вы-
равнивания". Дата  создания файла  изменяется на  дату заражения  до тех
пор, пока  количество запусков с момента заражения не станет равным 256.
Длина исходной  программы вирусом не сохраняется. Атрибуты файла не про-
веряются, поэтому  вирус не заражает файлы с атрибутами READ ONLY. Вирус
RC-492 не проверяет, находится заражаемая программа (которая загружается
на выполнение)  на защищенной  дискете или нет, и пытается выполнить за-
пись на  защищенную от записи дискету. При этом операционная система вы-
дает сообщение:


  Write protect error writing device <лог.имя.устр.>
  Abort, Retry, Ignore, Fail?

   Вирус использует "гибридную" стратегию заражения, в которой сочетают-
ся методы, характерные для  нерезидентного вируса, с методами, характер-
ными для  резидентного вируса.  Как уже  отмечалось, получив управление,
вирус сначала  пытается заразить  файл COMMAND.COM в корневом каталоге --
стратегия, характерная  в основном  для нерезидентных  вирусов. Вместе с
тем, став  резидентным, вирус перехватывает прерывание 1Сh и 21h и зара-
жает программы, запускаемые на выполнение.

   Отличительной особенностью  данного вируса  является то, что в опера-
тивной памяти  его тело располагается в области второй половины векторов
прерываний (0000:200h --  0000:03FFh). Это  может приводить  к  зависанию
компьютера при инсталляции вируса, если к этому моменту одна из резиден-
тных программ использует какой-нибудь из затираемых векторов прерываний.

   При запуске  зараженной программы  RС-492 сначала проверяет с помощью
прерывания 21h-35h,  имеется ли уже резидентная копия данного вируса (по
значению адреса  обработчика прерывания  1Сh). Если условие зараженности
оперативной памяти  выполнено, то  вирус передает  управление зараженной
программе, в  противном  случае  он  приступает  к  поиску  и  заражению
COMMAND.COM в главном каталоге диска С. Затем вирус становится резидент-
ным и перехватывает прерывания 1Ch и 21h. В результате при запуске любой
программы вирус  получает управление, проверяет, является ли запускаемая
программа зараженной, и если нет, то заражает данную программу на диске.
У зараженного  файла изменены значения первых 6 байтов (организуется пе-
реход на начало тела и признак зараженности файла).

   Фаза проявления  данного вируса  в настоящее  время еще не ясна. Есть
основания считать,  что прерывание  1Ch используется  вирусом для выбора
момента уничтожения информации в выбираемых случайным образом последова-
тельных секторах  диска С  (похоже, записывается четное число секторов --
2,4,6). В указанные сектора записывается информация из оперативной памя-
ти компьютера.  По мнению Д.Н.Лозинского, есть надежда, что данный фраг-
мент содержит ошибку и такой момент никогда не наступит.

   Код вируса  RC-492 не содержит приемов, затрудняющих дизассемблирова-
ние и анализ программы.

   Исторические сведения.  Данный вирус  появился в  СССР в июле 1990 г.
Впервые был выделен автором в ВЦ АН СССР (Moсква) 19 июля 1990 г. и, не-
зависимо, Д.Н.Лозинским. B Киеве не отмечался. Первыми фагами для данно-
го вируса были полифаги -V Е.В.Касперского и NeatFag В.В.Пономаренко.

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

   Методы  и   средства  защиты.   Из-за  малого  размера  и  отсутствия
характерных строк  вирус может  быть легко  пропущен при визуальном про-
смотре дампа  файла. Для  входного контроля  рекомендуется  использовать
любые два полифага, из числа рекомендованных в прил.1. Версии полидетек-
тора Scan (до 77 включительно) этот вирус не обнаруживают.


          Фрагмент дампа дрозофилы, зараженной вирусом RC-492

000: E91D007349FF9090 90909090909090C3  ...sI...........
010: 0000000000000000 0000000000000000  ................
020: 2E8B1E010183C303 B104D3EB8CD803C3  ................
030: 8ED82EA1B001A38C 02BE6F01BF0001FC  ..........o.....
040: B90600F3A4B81C35 CD2181FB45027508  .......5.!..E.u.
050: 0E0E1F07680001C3 B810008EC0B90002  ....h...........
060: BF00018BF7F3A406 1EBA7501E835001F  ..........u..5..
070: B81C25BA4502CD21 B82135CD21891E8E  ..%.E..!.!5.!...
080: 028C069002BA9202 B82125CD21EBC190  .........!%.!...
090: 9090909090433A5C 434F4D4D414E442E  .....C:\COMMAND.
0A0: 434F4D00B43DB002 CD215B1F537303E9  COM..=...![.Ss..
0B0: 91008BD8B43FB906 00BA6F01CD21727F  .....?....o..!r.
0C0: 813E720173497455 813E6F014D5A746F  .>r.sItU.>o.MZto
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
1E0: 040083EF018BF7BF 8301ACE86CFFAE74  ............l..t
1F0: 03EB0B90E2F41F5A 521E0EE8A6FE1F5A  .......ZR......Z
200: 075D5F5E595B582E FF2E8E02          .]_^Y[X.....



            5.7. Группа троянизирующих вирусов; вирус RC-488
           (Flu-2 -- Грипп-2, LoveChild -- Внебрачный ребенок)

   Важный класс  вирусов связан  с особым  эффектом поражения программ --
троянизацией последних.  Исторически первым представителем данной группы
можно считать  вирус С-648,  который превращает   некоторые  программы в
троянские, записывая в начало COM-файла команду перехода на подпрограмму
перезагрузки. Рассматриваемый  ниже  вирус  является  значительно  более
коварным и изощренным представителем этой группы.

   Неформальное название  вируса RC-488 связано с тем, что в теле вируса
имеются текстовые строки:


   "v2 (c) Flu Systems (R)"
   ("Грипповые системы")
  "LoveChild in reward for software sealing". ("Внебрачный ребенок в
  награду за кражу программ").

   Формально RC-488  является файловым  резидентным вирусом,  заражающим
COM-файлы. Длина  вируса 488  (1E8h) байтов  совпадает с приращением при
заражении. Файлы  заражаются однократно.  Командный процессор заражается
как обычный COM-файл.

   При заражении  COM-файлов вирус дописывает себя в конец, изменяя пер-
вые четыре  байта. Файлы заражаются при их загрузке в память, при откры-
тии и  создании (21-3Ch,  21-3Dh, 21-4Bh  и 21-5Bh). При заражении длина
файлов не проверяется.

   При инсталляции  записывает свое тело во вторую половину таблицы век-
торов прерываний, начиная с адреса 0000:01E0h. Проверяет версию операци-
онной cистемы.  Использует специальный способ определения адреса вектора
21h и  13h, ориентированный на версию 3.3 MS DOS. Для получения управле-
ния по  прерыванию 21h  использует сплайсинг.  Обработка прерывания  13h
сводится к замене адреса его обработчика на первоначальное значение, что
"отрубает" сторожа,  следящие за этим прерыванием, как, впрочем, и драй-
веры типа 800, обеспечивающие нестандартные форматы записи на дискеты.

   Фаза проявления  наступает при определенных значениях счетчика време-
ни. При этом вирус либо уничтожает файлы, либо создает вместо файла под-
каталог с  таким же  именем. Кроме того, вирус может модифицировать COM-
файлы таким  образом, что их запуск вызовет стирание секторов винчестера
(стирается вся информация, расположенная на всех секторах, соответствую-
щих 0-3 головкам записи/чтения).

   Исторические сведения.  Судя по текстовым строкам, RC-488 имеет зару-
бежное происхождение, однако в доступной автору версии списка П.Хоффман,
датированном 10.10.90, описание этого вируса отсутствует. В СССР появил-
ся примерно в августе 1990 г. Автору был передан Е.В.Касперским. B Киеве
не отмечался.

   Неформальные названия. Помимо приведенных выше, неизвестны.

   Методы и  средства защиты.  Данный вирус  относится к  числу наиболее
опасных вирусов-вандалов,  что требует жесткого входного контроля посту-
пающего программного  обеспечения. Наличие  характерных текстовых  строк
облегчает визуальное  определение  зараженности  файла  путем  просмотра
дампа.  Для  входного  контроля  рекомендуется  использовать  любые  два
полифага, из  числа рекомендованных  в прил.1. Версии полидетектора Scan
(до 77 включительно) данный вирус не обнаруживают.


          Фрагмент дампа дрозофилы, зараженной вирусом RC-488

000: FBE9F200B402B207 CD21CD2000000000  .........!. ....
010: 0000000000000000 0000000000000000  ................
***  далее следуют строки, идентичные предыдущей ***
0E0: 7632202863292046 6C75205379737465  v2 (c) Flu Syste
0F0: 6D732028522933C0 8EC0E800005E8BEE  ms (R)3......^..
100: BFE001FC26813D76 32744881EE1D00B9  ....&.=v2tH.....
110: E801F3A4B430CD21 3D031E7527BE7000  .....0.!=..u'.p.
120: 8EDEBEB400BF4C00 A5A5B80312CD2F26  ......L......./&
130: 8C1EC803BE6014C6 04EA8C4403C74401  .....`.....D..D.
140: CD02EB0F061FBE84 00A5A58C44FEC744  ............D..D
150: FCCD028CC88EC08E D8BF00018BF581C6  ................
160: 6E00A5A533C083EF 04FFE790909090FB  n...3...........
170: E90000B003CFB901 00BA80038BD9B810  ................
180: 03CD13FECE79F7B6 03FEC5EBF14C6F76  .....y.......Lov
190: 654368696C642069 6E20726577617264  eChild in reward
1A0: 20666F7220736F66 7477617265207365   for software se
1B0: 616C696E672E2EF6 066C0407750A1F5A  aling....l..u..Z
1C0: 595B58B441E9FD00 E9EE0088132EFF0E  Y[X.A...........
1D0: CB027803E9EE002E FF06CB0280FC4075  ..x...........@u
1E0: 24578BFA813D4D5A 751A2EF6066C0406  $W...=MZu....l..
...  .. .. .. .. ..   .. .. .. .. ..    . . . . . . . .
2B0: B440CD215BB43ECD 212EC706CB02FFFF  .@.![.>.!.......
2C0: 1F5A595B58EA6714 0000              .ZY[X.g...




                       5.8. Группа стелс-вирусов

                                  "ВВС США впервые использовали в боевых
                                   условиях свой секретный истребитель-
                                   бомбардировщик F-117A "Стелс". Новый
                                   самолет, "невидимый" для радаров,
                                   участвовал в бомбардировке в Панаме
                                   перед высадкой там в среду американ-
                                   ских войск."
                                                ТАСС, 24 декабря 1989 г.

   Как и  другие продукты человеческой деятельности, компьютерные вирусы
претерпевают определенную  эволюцию, которая  в значительной степени об-
легчается тем, что в течение значительного отрезка времени среда их раз-
множения (MS DOS) остается практически неизменной. Если попытаться кван-
товать наблюдаемые непрерывные эволюционные изменения, то можно говорить
о поколениях компьютерных вирусов.

   Понятие поколения  компьютерного вируса  связано, в основном, с меха-
низмом размножения и методами маскировки. Наблюдаемый cейчас в ряде пуб-
ликаций акцент  на проявлениях  того или иного вируса является неверным:
по сути  вирус можно разделить на две достаточно независимые части: ком-
поненту размножения  и компоненту проявления. При этом именно характери-
стики компоненты размножения являются основными и определяют место конк-
ретного вируса "в эволюционной цепочке". В то же время популярная пресса
акцентирует внимание на компоненте проявления, что видно хотя бы из рас-
пространенности неформальных названий типа Тринадцатая пятница, День Ко-
лумба, Воскресенье,  Пинг-Понг и т.д. Если провести аналогию с авиацией,
то компонента  размножения соответствует самому летательному аппарату, а
компонента проявления --  полезной нагрузке.  Очевидно, что один и тот же
самолет может доставлять и бомбы, и листовки.

   Компонента размножения  должна обеспечить две основные функции: полу-
чить управление  с тем, чтобы обеспечить репликацию вируса; избежать об-
наружения, чтобы выжить и выполнить предыдущий пункт.

   Важность этих двух функций изменяется в ходе эволюции. На первом эта-
пе эволюции вирусов основной является репликация. При этом вопросам мас-
кировки либо  вообще не уделялось внимание, либо они носили несистемати-
ческий характер  и были направлены на маскировку одного или двух измене-
ний, возникающих  в зараженной программе или системе. Этому этапу эволю-
ции соответствует  первое поколение вирусов -- вирусы, не рассчитанные на
преодоление антивирусных средств.

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

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

   Наиболее   важным    следствием   является    возможность    "обмана"
существующего поколения  ревизоров, которые  до этого  момента считались
наиболее надежным  методом контроля  целостности программ.  Естественно,
что  новое   поколение  ревизоров     учитывает   указанные  возможности
маскировки (см., например, очередную версию ревизора Dinf (Софтпанорама,
т.3, No. 2)).

   Действия по маскировке можно условно классифицировать на четыре кате-
гории:

   затруднение обнаружения вируса в зараженной программе;

   маскировка наличия вируса в оперативной памяти;

   маскировка процесса заражения программ;

   использование методов  кодирования, затрудняющих трассировку и иссле-
дование вируса.

   К первой категории можно отнести автомодификацию инсталлятора с целью
затруднить обнаружение  детекторами, основанными  на контекстном поиске;
шифровка всей  или части программы (например, текстовых строк); сохране-
ние точки  входа в EXE-программах; выкусывание вируса из зараженной про-
граммы при попытке просмотра последней при резидентном вирусе; импланта-
цию тела  вируса в  программу без  увеличения размеров файла; cохранение
первого перехода  в COM-файлах;  маскировка увеличения  длины зараженных
файлов путем  подмены значения соответствующего поля элемента оглавления
при операциях FindFirst и FindNext (21h-11h и 21h-12h) с предварительным
вычитанием длины вируса (при этом утилиты, которые не используют указан-
ные функции  DOS, работая  с каталогами непосредственно (например Norton
Commander), будут  показывать увеличенную  длину, а команда DIR -- умень-
шенную).

   Для маскировки наличия вируса в оперативной памяти используются зане-
сение тела  вируса в  специальную зону  MS DOS (например,  в буфера  или
старшие адреса векторов прерываний); манипуляция MCB, специальные методы
перехвата прерываний, обеспечивающие обход сторожей, контролирующих спи-
сок резидентных программ и состояние векторов прерываний; перехват и мо-
дификация дисковых  операций с целью скрыть изменения в исполняемых бло-
ках (бут-сектор,  MBR); корректировка  резидентным вирусом общего объема
свободной оперативной  памяти с  целью скрыть его изменение в результате
инсталляции вируса.

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


                 5.8.1. RCE-04096 (Frodo -- Фродо, 4096)

   Данный вирус принято считать первым стелс-вирусом. RCE-04096 был раз-
работан в  Израиле в  конце 1989 г.  Название "Фродо" связано с тем, что
вирус содержит  бут-сектор в  своем коде,  хотя он никогда не записывает
свое тело в бут-сектор. При записи этого бут-сектора в бут-сектор диске-
ты и попытке загрузки выдается "плакатный текст"

                                FRODO
                                LIVES

("Фродо живет"  или "Фродо жив"), выполненный буквами 8*5, состоящими из
символов псевдографики. По данным П.Хоффман, 22 сентября -- это день рож-
дения героев  известной сказочной  трилогии Дж.Р.Толкиена "Властелин ко-
лец" (Lord  Of The  Rings) -- Бильбо  и Фродо  Бэггинов (Bilbo and Frodo
Baggins) [Толкиен83].

   Формально данный  вирус относится к файловым резидентным вирусам. За-
ражает как COM-, так и EXE-файлы (включая оверлеи) при запуске на выпол-
нение или закрытии файла (функции 21h-4Bh или 21h-3Eh). Файлы заражаются
однократно. В качестве признака заражения используется значение поля го-
да даты  создания файла.  Для зараженных файлов вирус изменяет поле года
создания файла,  увеличивая его на сто, например с 1990 до 2090. В даль-
нейшем это  значение используется  для определения  зараженности  файла.
Возможно заражение файлов, содержащих данные. Приращение длины при зара-
жении всегда  равно 4096 байтов, что объясняет такие неформальные назва-
ния, как  4096 и  4K. Следует  отметить, что  вирус проверяет расширение
файлов путем суммирования значений букв. Поэтому он будет заражать файлы
с любыми расширениями, имеющими сумму кодов букв 223 или 226.

   Заражает COM-файлы  длиной до 61440 (F000h) байтов. При заражении из-
меняет первые  шесть байтов файла. Тело вируса дописывается в хвост фай-
ла. При  этом приращение длины файла всегда равно 4096 байтов. Командный
процессор заражается  как обычный  COM-файл. Как  и в случае вируса RCE-
1800, заражение  командного процессора обычно происходит сразу после ин-
сталляции вируса в оперативной памяти.

   Заражаемые EXE-файлы могут иметь любую длину. При заражении изменяет-
ся заголовок.  Тело вируса дописывается в хвост файла. Длина зараженного
EXE-файла увеличивается ровно на 4096 байт.

   При инсталляции вирус создает себе "дыру" в старших адресах оператив-
ной памяти  путем манипуляций с MCB и записывает туда свое тело, затирая
транзитную часть COMMAND.COM. При перезагрузке командного процессора ви-
рус заражает  его как  обычный файл.  После инсталляции вируса обьем до-
ступной памяти уменьшается на 6К. Для определения положения обработчиков
прерываний 13h  и 21h  вирус проходит  при  инсталляции  соответствующую
часть кода с флагом трассировки (как музыкальные самоеды). Для получения
управления по  прерыванию 21h вирус использует сплайсинг ("врезку" в об-
работчик прерывания). Это первый вирус, использующий сплайсинг для полу-
чения управления по прерыванию 21h.

   RCE-04096  обрабатывает   порядка  20  (двадцати  !)  функций  MS DOS
(Create, FindFirst,  FindNext, Read,  Write, Lseek,  Open, Close, Exec и
некоторые другие).

   При наличии  вируса в  оперативной памяти приращение длины зараженных
файлов маскируется  и не  видно при  просмотре оглавления  командой DIR.
Этот эффект  обеспечен за счет перехвата операций, используемых командой
DIR для считывания элементов каталога и вычитания 4К из длины зараженных
файлов. Первым  такой метод  маскировки был  использован в  вирусе  RCE-
02000. Более того, RCE-04096 маскирует и изменение заголовка.

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

   Описанный механизм  обеспечивает обход детектирования заражения с по-
мощью ревизоров.  Таким образом,  данный вирус  является первым вирусом,
обходящим данный  класс антивирусных  программ. Если при копировании вы-
полняемого файла  создается файл  с расширением, не используемым для ис-
полняемых файлов (COM, EXE, BIN, SYS и т.д.), то вирус "выкусывает" свое
тело при копировании.

   При кодировании  вируса использованы  достаточно сложные  приемы, за-
трудняющие трассировку. В частности, первые действия инсталлятора вируса
после получения  им управления направлены на  "сбивание" трассировки пу-
тем манипулирования  прерыванием  1  (пошаговое  выполнение),  регистром
флажков и  контроллером 8259.  Код вируса  не лишен ошибок. В частности,
из-за ошибки при кодировании вирус повреждает некоторые файлы при их за-
ражении: после  заражения вирус не обновляет информацию в заголовке фай-
ла. При  запуске таких  файлов MS DOS  выдает диагностическое  сообщение
"ERROR  in  EXE  File".  Такие  повреждения  можно  устранить,  запустив
CHKDSK/F, а  затем соответствующий фаг. Как уже отмечалось, вирус иногда
заражает файлы данных. Они могут быть восстановлены с помощью соответст-
вующего фага.
   Фаза проявления  привязана к дате 22 сентября, однако код в имеющихся
экземплярах вируса  стерт в связи с недостаточным размером памяти, отве-
денным под  стек. Учитывая  наличие в  теле вируса загрузчика, выдающего
сообщение "Фродо жив", логично предположить, что она связана с записью в
бут-сектор этого  загрузчика. В результате первая же перезагрузка приве-
дет к  выдаче на экран приведенного выше сообщения. Однако реально после
22 сентября  запуск любой зараженной программы вызывает зависание опера-
ционной системы (вирус зацикливается), создавая впечатление машинной не-
исправности. По  данным П.Хоффман, из-за ошибки в коде вирус может "сра-
щивать" файлы на диске при манипулировании FAT и числом свободных секто-
ров. Пользователь, использующий команду CHKDSK/F, обнаруживает, что фай-
лы имеют потерянные кластеры или кластеры, принадлежащие двум файлам од-
новременно.

   Вирус ориентирован на MS DOS 3.х и использует ряд недокументированных
функций последней.  Работоспособность при  работе с  версиями 4.01 и 5.0
сомнительна, однако  автором не проверялась. Зависимости от типа исполь-
зуемого процессора  не выявлено. При экспериментах вирус успешно работал
как на  XT, так  и на  AT/286. Вирус  несовместим с  сетевым программным
обеспечением фирмы Novell.

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

   Исторические сведения.  Вирус был обнаружен в Израиле в  какой-то во-
енной организации в октябре 1989 г. В СССР обнаружен Д.Н.Лозинским в ав-
густе 1990 г. Существует штамм 4096-B, аналогичный описанному, но шифру-
ющий свое тело.

   Неформальные названия.  Среди неформальных  названий следует отметить
следующие: 4096,  4K, 100  Years virus  (100 лет), Century virus (столе-
тие), Hiding (Прячущийся),  IDF Virus (ИА-вирус --  IDF  расшифровывается
как Israeli  Defence Forces --  израильская армия), Stealth Virus (стелс-
вирус).

   Методы и средства защиты. Данный вирус диагностируется полидетектором
Scan. Для  визуального обнаружения можно использовать год создания файла
(у зараженных  файлов год увеличен на 100). Для этой цели можно просмот-
реть оглавление  с помощью Turbo C++ (единственная известная автору обо-
лочка, показывающая  год создания  файла полностью) или дамп кластеров с
каталогами с  помощью Norton Utilities (в DIR и в Norton Commander видны
только две  последние цифры  года). Для входного контроля программ можно
использовать фаги,  рекомендуемые в прил.1. При отсутствии фага для "вы-
кусывания" можно использовать упоминавшийся эффект, связанный с тем, что
при копировании выполняемого файла в файл с расширением, отличным от ис-
полняемых (COM, EXE, BIN, SYS и т.д.) резидентный вирус выполняет "выку-
сывание" своего тела из файла. Для этой цели при резидентном вирусе мож-
но свернуть зараженные файлы в архив, а затем после перезагрузки с защи-
щенной дискеты,  содержащей эталонную  операционную систему, скопировать
их обратно. Другим вариантом является копирование с переименованием рас-
ширения, например EXE в TTT, а COM в YYY.

   Неясно, является  ли увеличение года достаточным признаком зараженно-
сти файла,  или вирус проверяет еще какие-то поля. Если этот признак до-
статочен, то  возможна пассивная вакцинация файлов путем увеличения зна-
чения года  создания на 100, как это делалось с секундами создания файла
при вакцинации  от вируса C-648. Кроме того, возможно создание резидент-
ной вакцины, обеспечивающей увеличение значения поля года при считывании
элемента каталога.


         Фрагмент дампа дрозофилы, зараженной вирусом RCE-04096

0000: E9E502BA1560B409 0E1FCD21B44CCD21 .....`.....!.L.!
010: 9090909090909090 9090909090909090  ................
***   последующие строки идентичны предыдущей ***
0080: 00E9A700E90000BA 1C01B4090E1FCD21 ...............!
0090: B44CCD2100000000 0000000000000000 .L.!............
00A0: 00FE3A558BEC5081 7E0400C0730C2EA1 ..:U..P.~...s...
00B0: 4712394604760358 5DCF2E803E501201 G.9F.v.X]...>P..
00C0: 74328B46042EA32F 128B46022EA32D12 t2.F.../..F...-.
00D0: 7215585D2E8E16DD 122E8B26DF122EA0 r.X].......&....
00E0: E512E621E9D90C81 6606FFFE2EA0E512 ...!....f.......
00F0: E621EBC32EFE0E51 1275BC816606FFFE .!.....Q.u..f...
0100: E86C0DE8340D2EC5 163112B001E80C0F .l..4....1......
02D0: 010612002EA1E312 2E8E1612002E8B26 ...............&
02E0: 1400FB2EFF2E1800

                       +------- начало инсталлятора
                       V
                       81FC0001770233E4 ............w.3.
02F0: 8BE8E800005981E9 75028CC8BB1000F7 .....Y..u.......
0300: E303C183D200F7F3 50B8AB00508BC5CB ........P...P...
0310: 307C07234E04378B 0E4B8B053CD5043D 0|.#N.7..K..<..=
0320: 11053E55050F9B03 14CD0321C10327BF ..>U.......!..'.
0330: 031159031259034E 9F044F9F043FA50A ..Y..Y.N..O..?..
0340: 408A0B42900A5741 0A48340E3D004B75 @..B..WA.H4.=.Ku
....  ..  ..  ..  ..   ..  ..  ..  ..   . . . . . . . .
0810: E97CFBE83005E8BC 00C606200001813E .|..0...... ...>
0820: 00124D5A740E813E 00125A4D7406FE0E ..MZt..>..ZMt...
0830: 20007458A10412D1 E1F7E10500023BC6  .tX..........;.
0840: 7248A10A120B060C 12743FA1A9128B16 rH.......t?.....
....  ..  ..  ..  ..   ..  ..  ..  ..   . . . . . . . .
1000: E2F6FD8036E77C01 8036D77C288036E2 ....6.|..6.|(.6.
1010: 7C28C383E3038A87 0A7C43C3065333DB |(.......|C..S3.
1020: 8EC38AD8D1E3D1E3 268917268C5F025B ........&..&._.[
1030: 07C3E811FDB20100 9A0EFB077000330E ............p.3.
1040: 2E03571803002600 0000210050121B17 ..W...&...!.P...
1050: E00F7B21C1023141 7A16011F9A0EFB07 ..{!..1Az.......
1060: 7000330E2E035718 571FA9800000571F p.3...W.W.....W.
1070: 50121B36F411FF36 F211B903005153B9 P..6...6.....QS.


                    5.8.2. Вирус RC-0-512 (512, 666)

   Данный вирус  имеет размер, совпадающий с типичным размером сектора в
MS DOS, и  использует специальный  метод размножения, напоминающий метод
размножения бутовых вирусов. Вирус содержит текстовую строку 666 в конце
тела, поэтому  его иногда  называют 666.  В коде вируса используется ряд
недокументированных  функций  MS DOS.  Формально  RC-0-512  представляет
собой первый  сегментированный резидентный файловый вирус. В нем исполь-
зуется несовершенство  распределения дисковой  памяти в  MS DOS:  размер
кластера обычно  превышает размер сектора как минимум в два раза, и поэ-
тому можно  использовать незаполненные  "хвосты" в последнем секторе для
хранения части  тела вируса  (модификация первых  команд остается обяза-
тельной, иначе вирус не сможет получить управления). Фактически эту схе-
му можно  рассматривать как попытку перенесения схемы бутового вируса на
файловый вирус.  Как известно,  бутовый вирус,  в отличие  от файлового,
сегментирован и  состоит из головы и хвоста. Голова находится в бут-сек-
торе, а  хвост хранится где-то в другом месте и его загрузка выполняется
головой. Аналогично вирус RC-0-512 рассматривает первый сектор COM-файла
как бут-сектор и заменяет его своим телом, а хвост, представляющий собой
оригинальный первый сектор зараженной программы, прячет в неиспользуемый
сектор последнего кластера. Очевидно, что вирус может заражать на диске-
те только  те файлы,  у которых второй сектор последнего кластера полно-
стью свободен.  На винчестере возможно заражение большинства COM-файлов,
так как  размер кластера значительно больше и один свободный сектор име-
ется практически  всегда (это,  кстати, говорит  в пользу  использования
дисковых драйверов типа SpeedStore, позволяющих, при размере логического
диска до  30K, уменьшить размер кластера до 1К, высвободив таким образом
порядка 1М дисковой памяти).

   При заражении  RC-0-512 записывает  себя в  первый сектор заражаемого
COM-файла, предварительно  переписав "оригинальный" первый сектор в один
из незаполненных  секторов последнего кластера, занимаемого файлов, если
такой имеется.  При отсутствии  в памяти резидентного вируса, зараженные
файлы, скопированные  с помощью команды COPY  (копирующей файл побайтово
в соответствии с указанной в элементе каталога длиной), будут неработос-
пособны, а  находящийся в них вирус -- работоспособным. Заражаются только
файлы, имеющие  в последнем  кластере свободный сектор. Зараженные файлы
отмечаются 62 секундным значением в поле даты.

   Подобно специфическому  механизму заражения, вирус использует необыч-
ный механизм инсталляции в оперативной памяти: для хранения собственного
тела вирус  "откусывает" первый буфер буферного пула MS DOS, переставляя
указатель на  первый буфер так, чтобы он указывал на второй буфер. Таким
образом, определить его наличие в памяти без полного сканирования опера-
тивной памяти  можно только,  если знаешь,  где искать. Этот факт свиде-
тельствует о том, что оптимизация просмотра оперативной памяти в контек-
стных детекторах  и полифагах  является неверным  шагом и может ухудшить
качество детектирования.

   Как и  в других вирусах группы Dark Avenger, заражение происходит как
при открытии,  так и  при выполнении файла. Заражаются файлы, первые две
буквы расширения которых "CO". При копировании заражаются как копия, так
и оригинал.

   Вирус заражает  COMMAND.COM методом,  аналогичным  использованному  в
RCE-1800. При  этом он сам специально модифицирует часть транзитного мо-
дуля COMMAND.COM,  чтобы вызвать его перезагрузку и заражение. Поскольку
при перезагрузке системы командный процессор загружается в память до по-
явления в ней резидентного вируса, то вирус инсталлируется, а затем под-
гружает недостающую  часть командного  процессора из  свободного сектора
последнего кластера.

   Исторические сведения.  Вирус RC-0-512  разработан в  Болгарии техно-
крысой, называющей  себя Dark  Avenger. Он  был обнаружен студентом-про-
граммистом Василем  Никодимовым в  ноябре 1989 г. в Институте математики
(София). Первой  публикацией, описывающей  данный вирус, является статья
[Бончев90б]. В  СССР обнаружен практически одновременно в Москве и Киеве
в сентябре 1990 г.

   Методы и средства защиты. Данный вирус диагностируется полидетектором
Scan и любым контекстным детектором, содержащим соответствующую сигнату-
ру.  Возможность  создания  резидентной  вакцины  неясна.  Для  входного
контроля рекомендуются полифаги, приведенные в прил.1, в сочетании с по-
лидетектором Scan.  В связи с используемым механизмом заражения, при его
создании возникает  проблема с определением, хранится ли в соответствую-
щем секторе  последнего кластера  оригинальная голова  COM-файла (первые
512 байтов программы) или файл был скопирован и там теперь просто мусор.
В последнем случае восстановление приведет к записи мусора на место тела
вируса. Неясно  также, что произойдет при оптимизации диска, содержащего
зараженные файлы,  с помощью  утилит Norton Speed Disk (NSD), Сompress и
т.д.


         Фрагмент дампа дрозофилы, зараженной вирусом RC-0-512

     +---------начало инсталлятора
     V
000: B430CD21BE04008E DE80FC1EC5440872  .0.!.........D.r
010: 0AB413CD2F1E52CD 2F581FBFF800AB8C  ..../.R./X......
020: D8AB8EDEC54440AB 3D1B018CD8AB0657  .....D@.=......W
030: 7507D1E6B90001F3 A70E1F744AB452CD  u..........tJ.R.
040: 2106BEF8002BFF26 C44712268B5502B9  !....+.&.G.&.U..
050: 0401F3A58ED9BF16 00C7456E1B018C45  ..........En...E
060: 701F8957148CCA8E DA8B5DECFECF8EC3  p..W......].....
070: 3B158E1D8B154A8E DA8BF18BD7B128F3  ;.....J.......(.
080: A58EDB7212CD208B F18E5C2CAD4E85C0  ...r.. ...\,.N..
090: 75FA83C6038BD6B4 3DE814008B158955  u.......=......U
0A0: 04010D5A520E1F1E 0706B05050B43FCB  ...ZR......PP.?.
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
150: 00AD50AD50FF7440 FF74422EC554B0B8  ..P.P.t@.tB..T..
160: 1325CD210E1FBA75 00B024CD21061F8A  .%.!...u..$.!...
170: 45FC241F3C1F7408 8B45172D434F7544  E.$.<.t..E.-COuD
180: 3045FC8B053BC172 3B03C17237F645F3  0E...;.r;..r7.E.
190: 047531C575F6386C 04720848D0EC2264  .u1.u.8l.r.H.."d
1A0: 047421B820008ED8 2BD2E85EFF8BF251  .t!. ...+..^...Q
1B0: AC2E3A44077527E2 F75926804DFC1F26  ..:D.u'..Y&.M..&
1C0: 804DF540B43EE844 FF26804DF4401F5A  .M.@.>.D.&.M.@.Z
1D0: B82425CD211F5AB0 13CD21E94FFF5926  .$%.!.Z...!.O.Y&
1E0: 8B3526897504B440 CD2172D326893526  .5&.u..@.!r.&.5&
1F0: 8955040E1FB208B4 40CD21EBBD363636  .U......@.!..666



              5.9. Студенческая группа резидентных вирусов

   Базовым  вирусом  при  создании  "студенческих"  резидентных  вирусов
является, по-видимому,  вирус RCE-1813.  Это связано с тем, что, с одной
стороны,  данный  вирус  относится  к  числу  наиболее  распространенных
файловых  вирусов,  что  обусловливает  его  доступность,  а,  с  другой
стороны, код  вируса сравнительно  прост и не требует специальных знаний
для дизассемблирования и реконструкции.

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


                      5.9.1. Воронежская подгруппа

   Воронежская подгруппа  включает в настоящее время три вируса: RC-529,
RC-600 и RCE-1600, разработанные в 1990 г. и, по-видимому, принадлежащие
одному (отечественному!)  автору (два  последних точно,  а первый  с не-
которой долей сомнения).


                         5.9.1.1. Вирус RC-529
                   (Peterburg -- Петербург, Пакость-1)

   Формально данный  вирус можно отнести к резидентным файловым вирусам,
заражающим файлы с расширением COM. Не проверяет версию операционной си-
стемы, но использует имя программы, которое заносится в Environment вер-
сии MS DOS не ниже 3.0. При запуске зараженной программы инсталлируется,
перехватывая прерывание 21h.

   Заражает только COM-файлы при их выполнении. Определяет тип программы
по расширению  имени, из-за  чего EXE-программы, имеющие расширение COM,
после заражения  теряют работоспособность.  Работоспособность таких про-
грамм восстанавливается  после применения соответствующего фага. Подобно
остальным вирусам иерусалимской группы, при заражении COM-файлов записы-
вается в  начало, переписывая  старое начало в конец файла. Уровень про-
граммирования выдает начинающего: основная часть логики некритично заим-
ствована из вируса RСE-1813.

   Исторические сведения.  Впервые обнаружен в Ленинграде весной 1989 г.
Автору был  передан Д.Н.Лозинским.  Первым фагом для данного вируса был,
по-видимому, Aidstest.  В настоящее  время вирус  практически  полностью
уничтожен.

   Неформальные названия. Помимо приведенных выше, неизвестны.

   Методы и средства защиты. Для входного кон т ро ля можно использовать
любой полифаг  из числа  рекомендованных в  прил.1. Для  вузов и  других
учебных заведений можно рекомендовать резидентную поливакцину NeatVac.


          Фрагмент дампа дрозофилы, зараженной вирусом RC-529

000: B815CA8B361B01BF 00018B0E1D018B1E  ....6...........
010: 1901CD21FF361F01 C30101D007110247  ...!.6.........G
020: 017900C0010400C4 014D001102EA00FB  .y.......M......
030: 020100FC02010000 0080000E255C000E  ............%\..
040: 256C000E25CA01A1 1D0105140190A305  %l..%...........
050: 0303061D01050001 A30D038BE0050F00  ................
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
1B0: 15B8004233D28BCA CD21720AFEC68B0E  ...B3....!r.....
1C0: 1D01B440CD21B801 578B0E07038B1609  ...@.!..W.......
1D0: 03CD21B43ECD21B8 01438B0E0B038E5E  ..!.>.!..C.....^
1E0: 028B5600CD212EC5 160103B82425CD21  ..V..!......$%.!
1F0: 8BE55A1F5B5807C3 B003CFC3C35C06FD  ..Z.[X.......\..
200: 1856059D10250336 0021002000360664  .V...%.6.!. .6.d
210: 0090909090909090 9090909090909090  ................
220: 9090909090909090 9090909090909090  ................
***  следующие строки идентичны предыдущей ***
8E0: 90                                 .


                   5.9.1.2. Вирус RC-600 (Пакость-2)

   Данный штамм  аналогичен штамму  RC-529 и  заражает только COM-файлы.
Формально вирус RС-600 является резидентным файловым вирусом, поражающим
СОМ-файлы. Вирус  не проверяет  версию MS DOS, на которой функционирует.
По-видимому, работоспособен на версиях, начиная с 2.0.

   При запуске зараженной программы вирус сразу пытается инсталлировать-
ся в  оперативной памяти. Для определения, имеется ли уже в памяти рези-
дентный вирус,  используется стандартный для данной группы вирусов меха-
низм: вирус  выдает неиспользуемое  MS DOS прерывание  21h-ABh, а  затем
проверяет содержимое регистра AX. Файлы заражаются при загрузке в память
для выполнения (прерывание 21h-4Bh).

   Заражаются файлы типа СОМ, даже если они имеют расширение ЕХЕ. Дата и
время создания зараженного файла не изменяются, а длина увеличивается на
600 байтов.  Минимальная длина  заражаемых файлов  составляет 600 байтов
(258h), а  максимальная 60 000  байтов (EA60h). Не заражаются файлы, со-
держащие в первых двух байтах значение, превышающее EF60h, а также файлы
с атрибутом  READ ONLY.  Вирус не  заражает процессор COMMAND.COM. Файлы
заражаются однократно. В инфицированной программе тело вируса размещает-
ся в начале файла. Перехватывает прерывание 21h.

   Вирус шифрует часть своего тела (50 байтов, начиная с 16 байта от на-
чала). Первые  600 байтов  заражаемой программы  (участок, переносимый в
конец файла) также шифруются с помощью операции XOR 0BBh и переносятся в
конец файла. На их место помещается тело вируса (тоже частично закодиро-
ванное -- 50 байтов, начиная с 17-го -- XOR 0DDh).

   Фаза проявления  у данного  вируса отсутствует.  При попытке  запуска
программы из оболочек типа NC на зараженной машине, если COMMAND.COM на-
ходится на защищенном от записи диске, происходит "выпадение" в DOS. При
попытке заражения файлов, расположенных на защищенной от записи дискете,
иногда (не  всегда) появляется  стандартное сообщение "Abort, Retry...".
Это связано с ошибкой в подпрограмме обработки прерывания 24h.

   Исторические сведения.  По-видимому, вирус имеет отечественное проис-
хождение,  поскольку   в  теле   вируса  имеется   зашифрованная  строка
"Oleynikoz S., 1990". Вирус RСE-600 появился в СССР в начале 1990 г. Об-
наружен А.В.Сессой  в Днепропетровске  в середине  апреля 1990 г. Значи-
тельного распространения  вирус не получил. Из полифагов, распространяе-
мых   бесплатно,    первым   был,    по-видимому,   -V   Е.В.Касперского
(Софтпанорама, т.2,  No. 7). В настоящее время вирус практически полностью
уничтожен.

   Неформальные названия.  Помимо приведенного выше, иногда используются
названия 600 и Oleynikoz.

   Методы  и   средства  защиты.   Из-за  малого  размера  и  отсутствия
характерных строк  вирус может  быть легко  пропущен при визуальном про-
смотре дампа файла, хотя отсутствие в конце файла текстовых строк (из-за
перемещения 600  байтов  перекодированного  тела  зараженной  программы)
должно настораживать.  Для входного  контроля рекомендуется использовать
любые два полифага, из числа рекомендованных в прил.1. Версии полидетек-
тора Scan (до 77 включительно) данный вирус не обнаруживают. Для вузов и
других учебных  заведений можно  рекомендовать использование резидентной
поливакцины NeatVac.


          Фрагмент дампа дрозофилы, зараженной вирусом RC-600
        (обратите внимание, что байты 90h перекодированы в BBh)

000: BE1001B932008A24 80F4DD882446E2F6  ....2..$....$F..
010: 697610FCE08888A8 DE3453DD5115F0DC  iv.......4S.Q...
020: DD530566DEDDE356 DAF05DDDE354DAD3  .S.f...V..]..T..
030: C266DFDD56DAF05D DD54DA531D62DDDD  .f..V..].T.S.b..
040: 63DD00B90008F3A4 8BD0EB2E90FB80FC  c...............
050: AB7504B85555CF50 FEC43D004C587515  .u..UU.P..=.LXu.
060: 9C50535152565706 1EE99E001F075F5E  .PSQRVW......._^
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
240: 0300E927FEB8003E CD218B1EF0018E06  ...'...>.!......
250: F201B82425CD21C3 3820818089928E82  ...$%.!.8 ......
260: 0290BB05AEBA9531 AF0FB9769AFD594D  .......1...v..YM
270: 01BBBB769BB1B626 2935299B2F3B3230  ...v...&)5)./;20
280: 9B2A353F3E2B3D33 299B39332B282A9B  .*5?>+=3).93+(*.
290: ED8D8B8B9B9B9B93 E9F89B8D8B8B929A  ................
2A0: BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB  ................
***  последующие строки идентичны предыдущей ***
4A0: 3F3033363B9B2C33 2A293538359B2F3B  ?036;.,3*)585./;
4B0: 32303B9B969B8D8B                   20;.....



                         5.9.1.3. Вирус RC-1600
               (Voronezh 2.01 -- Воронеж 2.01, Пакость-3)

   Последний и наиболее сложный из рассматриваемой подгруппы. Неформаль-
ное название  связано с наличием в теле вируса соответствующей текстовой
строки. Формально представляет собой резидентный файловый вирус, заража-
ющий COM-  и EXE-файлы.  С сожалением  приходится констатировать,  что в
данном вирусе  реализована идея, неосторожно высказанная Д.Н.Лозинским в
документации к полифагу Aidstest (AIDSREAD.ME): с целью затруднить обна-
ружение обычными  фагами, вирус не меняет точку входа в EXE-файле, изме-
няя Relocation table.

   При заражении  EXE-файлов тело вируса дописывается в конец заражаемой
программы. Файлы  заражаются не  только при запуске программ на исполне-
ние, но и при открытии файлов.

   Уровень программирования  создает противоречивое впечатление. Имеется
ряд признаков,  позволяющих говорить о близости "почерка", которым напи-
саны данный вирус и вирус RC-600.

   Исторические сведения.  Обнаружен в  Воронеже в июне 1990 г. А.Н.Мар-
темьяновым. Автору  передан Д.Н.Лозинским.  Из полифагов, распространяю-
щихся бесплатно,  первым его  включил Е.Сусликов  в полифаг  К32 (ранняя
версия полифага SOS).

   Неформальные названия.  Помимо приведенных  выше иногда  используется
название 1600.

   Методы и  средства защиты. Для вузов и других учебных заведений можно
рекомендовать резидентную  поливакцину NeatVac. Для борьбы с вирусом го-
дятся имеющиеся контекстные детекторы и резидентные программы. В качест-
ве фага можно рекомендовать SOS.

                     Фрагмент дампа вируса RC-1600

000: 8CD80E1F50E80000 5B81EB080153B4AB  ....P...[....S..
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
170: FC8A0434BB880546 47E2F6B800015B50  ...4...FG.....[P
180: C3F7854006CC7DE5 1145584565786555  ...@..}..EXEexeU
190: 767F637473717560 566F726F6E657A68  v.ctsqu`Voronezh
1A0: 2C3139393020322E 3031B430CD213C00  ,1990 2.01.0.!<.
1B0: 0100081A00110300 000000002A390000  ............*9..
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
5E0: 028E1ED202B80143 2E8B0ED002CD210E  .......C......!.
5F0: 1F5BE80300E9C0FA B8003ECD218B1E85  .[........>.!...
600: 028E068702B82425 CD21C3558BEC1EB8  ......$%.!.U....
610: 01438B16D4028E1E D20231C9CD217306  .C........1..!s.
620: 1F5D58E945FF368B 5E04B8003ECD21B8  .]X.E.6.^...>.!.
630: 023DFA9C2EFF1EC2 011F368946045DC3  .=........6.F.].


               5.9.2. Вирус RC-394 (Attention -- Внимание)

   Данный вирус  приводится как  еще один  образец   резидентных вирусов
"студенческой" группы.  Неформальное название  данного вируса  связано с
тем, что в начале любой зараженной данным вирусом программы после 3-бай-
товой команды  перехода на тело вируса расположена 12-байтовая текстовая
строка "Attention !". После этой строки стоит байт 1Ah. Формально RC-394
является файловым  резидентным вирусом, заражающим COM-файлы при запуске
их на выполнение (прерывание 21h-4Bh). Длина вируса (394 байта) совпада-
ет с приращением зараженных файлов. Это один из самых маленьких резиден-
тных вирусов,  располагающих свое тело в старших адресах оперативной па-
мяти.

   Вирус заражает COM-файлы длиной от 786 (312h) до 64921 (FD99h) байта.
При заражении  тело вируса  дописывается в конец файла и изменяет первые
16 байтов, как было указано выше. Если заражаемый файл был защищен атри-
бутом READ  ONLY, то  перед заражением  вирус снимает  этот атрибут и не
восстанавливает его после заражения.

   При инсталляции записывает свое тело в старшие адреса оперативной па-
мяти. Перехватывает  прерывания 21h и 24h. Последнее прерывание перехва-
тывается не  совсем корректно,  что может приводить к зависанию системы.
Характерным проявлением вируса является включение мотора дисковода А при
попытке заражения  файлов на  защищенной дискете, вставленной в дисковод
B.

   Исторические сведения.  В СССР  появился в Москве и Минске примерно в
августе 1990 г. Автору передан Д.Н.Лозинским.

   Неформальные названия. Помимо приведенного выше, неизвестны.

   Методы и  средства защиты.  Обнаружение несложно.  Рекомендуемые  для
входного контроля фаги приведены в прил.1.


          Фрагмент дампа дрозофилы, зараженной вирусом RC-394

000: E90E10415454454E 54494F4E2020211A  ...ATTENTION  !.
000: 9090909090909090 9090909090909090  ................
***  последующие строки идентичны предыдущей ***
000: 00CD209090909090 9090909090909090   . .............
010: 90E8F9002000C514 C01D9C50535152BB   ... ......PSQR.
020: 030031C9E2FEB00C BAF203EE31C9E2FE  ..1.........1...
030: BAF203B01CEE4B75 E95A595B589DB003  ......Ku.ZY[X...
040: CF5053515257561E 0680FC4B740D071F  .PSQRWV....Kt...
...  .. .. .. .. ..   .. .. .. .. ..    . . . . . . . .
0F0: 58050D00A3010052 31C931D2B80042CD  X......R1.1...B.
100: 2159B440CD21B43E CD21E941FFFA5A81  !Y.@.!.>.!.A..Z.
110: EA1300BB7901A102 005031C9518ED99D  ....y....P1.Q...
120: 39061504750253CB 581E0E1F1EC7C11A  9...u.S.X.......
130: 0029C8A30200508C C929C8498ED9A303  .)....P..).I....
140: 00581F8EC08BF231 FFC7C18901F3A4BE  .X.....1........
150: 00018BF9B91000F3 A41F0653BB84008B  ...........S....
160: 07C707400026A315 008B47028C470226  ...@.&....G..G.&
170: A317008C0615040E 07CBB910008BF2BF  ................
180: 0001061F1E57F3A4 FBCB              .....W...



                     5.10. Заключительные замечания

   К  моменту   сдачи  книги   в  набор  появились  две  группы  опасных
отечественных вирусов-вандалов: Words и Hymn.

   Вирусы группы  Words, судя  по тексту в одном из  них,  разработаны в
Киеве.  Заражают как COM-, так и EXE-файлы,  причем последние путем пре-
вращения в  COM-файл. Метод  постановки в резидент заимствован из вируса
RC-1701. Фаза  проявления связана  с искажением записываемой в файлы ин-
формации:   вирус переставляет  соседние слова (последовательности букв,
цифр   и знаков  препинания,   разделенные пробелами).  В качестве  букв
рассматриваются  и   буквы  кириллицы,  что  подтверждает  отечественное
происхождение вируса. Штамм RCE-1069 портит дату и  атрибуты  файла. Эти
ошибки исправлены  в штамме RCE-1085.  Два последних штамма: RCE-1387  и
RCE-1503 шифруют  свое тело,  причем RCE-1509 имеет самомодифицирующийся
инсталлятор.

   В группу  Hymn входят  три вируса:  RCE-1865 (наиболее ранняя версия,
записывается в  программу без  модификации) RCE-1962 (кодирует свое тело
при записи  в заражаемую  программу, оставляя  стабильным лишь  фрагмент
инсталлятора с  циклом раскодировки);  RCE-2144 (помимо кодирования тела
содержит примитивную  защиту от трассировки). Формально указанные вирусы
представляют собой файловые резидентные вирусы, заражающие как COM-, так
и EXE-файлы,  причем не только при загрузке программы, но и при открытии
файла, переименовании, изменении аттрибутов, а также при создании нового
программного файла.  Среда функционирования  вируса ограничена версиями,
начиная  с   3.3  (как   и  во   многих  других   вирусах,  используются
недокументированнные особеннности  именно этой  версии), однако проверка
версии в теле вируса отсутствует.

   Фаза проявления  вирусов группы Hymn наступает при совпадении числа с
номером месяца (например, 12 декабря, 1 января и т.д.) и состоит в обну-
лении ряда параметров винчестера (размер блока, количество FAT, и т.д.),
после чего  делается попытка  исполнить Гимн Советского Союза (по мнению
Д.Н.Лозинского, довольно  фальшиво) с выводом на экран саморекламы. Если
на  PC XT   в  момент  загрузки  системы  стоит  дата  01.01.80  и  если
COMMAND.COM заражен,  логический диск  C сразу  портится. Таким образом,
эти вирусы наиболее опасны на компьютерах, не имеющих таймера.

   Как  оказалось,  для  MS DOS  3.3  обнуления  параметров  оказывается
достаточно, чтобы   компьютер перестал грузиться с дискеты (по-видимому,
процесс загрузки аварийно завершается из-за деления на нуль). Восстанов-
ления винчестера  можно выполнять  с помощью утилиты, загрузив c дискеты
MS DOS   4.0 или  5.0. Имея распечатку дампов системных блоков, для вос-
становления удобно  использовать утилиту  DiskTool из  Norton  Utilities
5.0, а при ее отсутствии -- хорошо известную утилиту NU.

   Дополнительные сведения о вирусах группы Hymn приведены в прил.1.
