Энциклопедия компьютерных вирусов

         

Vacsina, Yankee, семейство


Семейство вирусов "VACSINA" (не "VACCINA"!) и "Yankee" насчитывает более 40 файловых резидентных неопасных вирусов. Каждый из них содержит в своем теле метку, состоящую из трех байт: F4h, 7Ah, NNh. Третий байт NNh рассматривается как номер вируса в семействе (номер версии вируса) и в дальнейшем будет фигурировать в именах вирусов ("Vacsina.NN" и "Yankee.NN"). При активизации вирусы данного семейства записывают в память по адресам 0000:00C5, 0000:00C6, 0000:00C7 байты 7Fh, 39h, NNh. Характерной особенностью вирусов данного семейства является то, что они восстанавливают файлы, зараженные предыдущими версиями вирусов семейства, и затем инфицируют их снова. Вирусы "Vacsina.NN" содержат в своем теле слово "VACSINA". Заражают COM- и EXE-файлы при их выполнении (вирусы версий до 26h) или загрузке в память (вирусы версий 26h и выше). Стандартно заражают COM-файлы. Вирусы версий до 9-й включительно проверяют у заражаемого COM-файла первый байт. Если он не равен E9h (JMP), то файл не заражается. Вирусы старших версий заражают COM-файлы вне зависимости от их первого байта. Кроме того, вирусы "Vacsina" увеличивают длину заражаемого файла до параграфа. Начиная с версии 2Ah к файлу после заражения дописываются дополнительные 4 байта. Вирусы младших версий (до 23h) инфицируют EXE-файлы специальным образом: файлы переводятся в формат COM-файлов. Для этого к файлу дописывается небольшой фрагмент вируса (132 байта), настраивающий адреса по таблице адресов при загрузке файла в память для выполнения, и изменяются первые три байта файла (JMP на фрагмент). Дописанные к файлу 132 байта не распространяют вируса. Их действие заключается только в настройке адресов программы при ее запуске. Обработанный таким образом файл будет выполняться операционной системой и заражаться многими вирусами как COM-файл. При запуске EXE-программы, содержащейся в подобном файле, управление передается на фрагмент настройки адресов, который анализирует таблицу адресов в заголовке файла и соответствующим образом корректирует загруженную программу.
Затем управление передается на стартовый адрес, указанный в заголовке файла. Вирусы перехватывают вектор прерывания 21h, а некоторые представители семейства "Yankee" - INT 1, 3, 9, 1Ch. Вирусы вызывают звуковые эффекты: при заражении файла вирусом "VACSINA" раздается звуковой сигнал (BELL), вирусы "Yankee" в зависимости от некоторых условий (при одновременном нажатии клавиш Alt-Ctrl-Del либо в 17.00) исполняют мелодию "Yankee Doodle Dandy". При некоторых условиях вирус "Vacsina.06" расшифровывает и выдает на экран строку "Az sum vasta lelja." Вирусы семейства содержат несколько "изюминок". Так, начиная с версии 18h, вирусы определяют первоначальное значение вектора 21h-го прерывания (адрес обработчика прерывания в DOS) и при внедрении в файлы вызывают прерывание по этому значению. Таким образом вирусы обходят резидентные антивирусные мониторы. При определении адреса обработчика прерывания используется следующий алгоритм: - установка прерывания 01h (точка входа при отладке; это прерывание вызывается в режиме отладки после выполнения процессором каждой команды) на подпрограмму определения истинного значения вектора прерывания; - включение режима отладки; - вызов "безопасной" с точки зрения резидентных антивирусов функции INT 21h. При выполнении "безопасной" функции 21h-го прерывания последовательно выполняются команды всех программ, которые изменяли вектор прерывания 21h, а затем команды операционной системы, обрабатывающие данное прерывание. При этом после каждой выполненной команды управление получает подпрограмма вируса, определяющая первоначальное значение вектора прерывания. Она анализирует адрес последней выполненной команды и, если этот адрес указывает на область памяти, принадлежащую операционной системе, выключает режим отладки, а адрес данной команды рассматривает как первоначальное значение вектора прерывания 21h.

00000 | ... | |----------------| |Операционная | +------------------>|система | | |----------------| | |COMMAND.COM | | INT 21h |----------------| +-------------------|Пользовательская|------- Программы, +------------------>|программа | | изменявшие | |----------------| | вектор прерывания | | ... | | 21h | INT 21h |----------------| | +-------------------|Пользовательская|---+ +------------------>|программа | | |----------------| | | ... | | |----------------| | |Вирус | | INT 21h | -------------| +-------------------|Команда вызова | |прерывания 21h | ^ | | -------------| | +------------>|Подпрограмма | | |определения | +----------------|вектора | |----------------| FFFFF | ... |

Начиная с версии 21h вирусы перехватывают действия, совершаемые отладчиком, и если под отладчиком находится тело вируса, блокируют процесс отладки. При этом при попытке просмотреть зараженный файл под отладчиком файл "самоизлечивается". Начиная с версии 21h вирусы семейства кодируют себя линейным блоковым кодом и хранят в своем теле проверочные байты. Периодически вирусы проверяют себя на наличие исправлений и по возможности восстанавливают их. Начиная с версии 2Сh дезактивируют резидентную часть вируса "PingPong"

, а начиная с 2Eh принимают некоторые меры противодействия вирусам семейства "Cascade"

.


Содержание раздела