Código:
void HideIsDebuggerPresent(bool hide) {
unsigned char being_debugged = (hide ? 0 : 1);
__asm {
MOV EAX, FS:[0x18]
MOV EAX, [EAX + 0x30]
MOV CL, being_debugged
MOV BYTE PTR [EAX + 2], CL
}
}
Y luego en el evento de depuracion CREATE_PROCESS_DEBUG_EVENT pongo esto:
Código:
CurrentExceptionThread = DebugEv.u.CreateProcessInfo.hThread;
con.ContextFlags= CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS;
GetThreadContext(CurrentExceptionThread, &con);
HideIsDebuggerPresent(false);
Pero el programa que he creado para depurarlo y probar me sigue mostrando que es detectado el debugger. ¿que me falta?