Приветствую всех! Возникла небольшая проблемка при обходе защиты COMODO. Конкретнее не работает API ZwSuspendThread (возвращает 'Access Denied') под Win7 Код выполняется из UserMode. Под XPSP3 и ниже с той же версией COMODO все работает. Если под Win7 у комодо отключить Defence то код работает ТАКЖЕ без проблем, т.е. проблема именно с комодо+Win7... Код выполняет ZwSuspendThread получая на входе хэндл первого трэда процесса 'explorer.exe'. Версия комодо: 4.1.150349.920 В SSDT NtSuspendThread Comodo НЕ перехватывает. Сплайсов в ядре он также не ставил на эту функцию. При трэйсе в дебугере обнаружилось, что Access Denied (С0000022) я подхватываю в функции ObReferenceObjectByHandleWithTag в районе: Код (Text): 0008:82a2e31a 8b1d98249382 mov ebx,dword ptr [nt!ObpAccessProtectCloseBit (82932498)] 0008:82a2e320 f7d3 not ebx 0008:82a2e322 235f04 and ebx,dword ptr [edi+4] 0008:82a2e325 8bc3 mov eax,ebx 0008:82a2e327 f7d0 not eax 0008:82a2e329 85450c test dword ptr [ebp+0Ch],eax 0008:82a2e32c 7410 je nt!ObReferenceObjectByHandleWithTag+0x1c5 (82a2e33e) 0008:82a2e32e 807d1400 cmp byte ptr [ebp+14h],0 0008:82a2e332 740a je nt!ObReferenceObjectByHandleWithTag+0x1c5 (82a2e33e) 0008:82a2e334 bb220000c0 mov ebx,0C0000022h Общая схема кода такова: Код (Text): ClientId.UniqueProcess = (HANDLE)dwProcessId; // explorer.exe ClientId.UniqueThread = (HANDLE)dwThreadId; ZwOpenProcess(&hProcess, PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION, &ObjectAttributes, (PCLIENT_ID)&g_ClientId) ZwOpenThread(&hThread, THREAD_QUERY_INFORMATION | THREAD_SUSPEND_RESUME, &ObjectAttributes, &ClientId); //ZwOpenProcess, ZwOpenThread работают независимо от желания или нежелания comodo, как впрочем и других хипсов, эта //часть кода работает и в Вин7 к счастью.. ..... тут идет УСПЕШНАЯ эксплуатация полученных хэндлов ..... SuspendThread(hThread); // проблема здесь, точнее в ObReferenceObjectByHandleWithTag (см выше) Вопрос простой... Где COMODO портит мне компот ? Заранее благодарен за намек на решение проблемки.