Buenas amigos, ya estoy depurando mi clase TDebugger y el primer pero que tengo es algo que uso para los métodos antidebug para lo cual necesito obtener el TEB. He modificado la función que tenia en x86 para adaptarla en x64 y quedó así:
Código PHP:
DWORD64 __fastcall THiloDebugger::GetTEB( HANDLE hThread, HANDLE hProcess )
{
LDT_ENTRY Selector;
DWORD64 nTEBAddr;
CONTEXT Context = {0};
Context.ContextFlags= CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS;
if(!GetThreadContext(hThread, &Context))
{
return 0;
}
if(!GetThreadSelectorEntry(hThread, Context.SegFs, &Selector))
{
return 0;
}
nTEBAddr = ((Selector.HighWord.Bits.BaseHi << 24) + (Selector.HighWord.Bits.BaseMid << 16) + Selector.BaseLow);
return nTEBAddr;
}
El problema es que GetThreadSelectorEntry solo sirve para x86 (lo miré en la msdn). ¿No existe el TEB en x64?¿como lo obtengo?