Антиэмуляторы
Как и многие другие части этого документа, эта маленькая глава является совместным проектом между мной и 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
- Использование тредов и/или фиберов
Я надеюсь, что все это окажется для вас полезным :).