Процедура заражения имеет три достаточно интересные особенности. Первая из них похожа на аналогичную в вирусе "Win95.SK"
- он записывает свой код в начало секции настроек (Fix-up) и стирает в PE-заголовке ссылку на эту таблицу. Обычно приложения Windows при запуске не используют эту секцию, и зараженные таким образом программы (с испорченной таблицей настроек) будут работать без каких-либо проблем.
Вирус записывает себя в секцию настроек только в том случае, если она является последней секцией файла. Если последняя секция не является настройками, вирус увеличивает ее размер и записывает свой код в образовавшееся дополнительное пространство. Естественно предположить, что при заражении первым методом размер файла может остаться неизменным (если размер таблицы настроек больше длины вируса), однако по причине ошибки вирус в любом случае увеличивает длину файла - при этом в этот блок попадают случайные данные.
Вторая особенность процедуры заражения также напоминает вирус "Win95.SK" - при заражении вирус не изменяет стартовый адрес программы и записывает команду передачи управления на свой код (Jmp_Virus) в середину кодовой секции файла. При этом код вируса получает управление не непосредственно в момент запуска программы, а только в том случае, если управление передается на процедуру, в которую вирус записал команду Jmp_Virus.
Для определения "подходящего" места для записи команды Jmp_Virus вирус сканирует таблицу импортов EXE-файла и ищет в ней ссылки на процедуры "ExitProcess" из библиотеки KERNEL32.DLL или "exit" из MSVCRT.DLL (Microsoft Visual C++ run-time). Если такая ссылка обнаружена, вирус сканирует кодовый сегмент файла, ищет команду вызова этой функции и записывает вместо нее свою инструкцию Jmp_Virus. В этом случае зараженные файлы передают управление на код вируса в момент окончания работы - вирус "вклинивается" между основной программой и командой завершения ее работы.
Если указанные выше функции не обнаружены, вирус сканирует 500 первых байт от стартового адреса программы, ищет там команды CALL или JMP и записывает свой вызов вместо первой из них.