Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: aguml en 13 Junio 2014, 18:25 pm



Título: Creando un HideIsDebuggerPresent
Publicado por: aguml en 13 Junio 2014, 18:25 pm
Bueno pues despues de haber estado googleando y leyendo he dado con esto:

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?


Título: Re: Creando un HideIsDebuggerPresent
Publicado por: MCKSys Argentina en 13 Junio 2014, 21:00 pm
Y cuando haces SetThreadContext? Osea, cuando le seteas el contexto al rpoceso nuevamente?

Creo que ahi esta el error...

Saludos!


Título: Re: Creando un HideIsDebuggerPresent
Publicado por: x64core en 14 Junio 2014, 19:14 pm
La idea no es escribirlo en el PEB del proceso remoto en lugar que en el de uno mismo? o esta el código en el remoto?