¿Cómo obtengo el RetAddress de una función que está con detour?

Iniciado por josue9243, 17 Agosto 2017, 04:01 AM

0 Miembros y 1 Visitante están viendo este tema.

josue9243

¿Cómo obtengo el RetAddress de una función que está con detour?, ejemplo:

CreateFileA retorna el valor de el address de la función la cual lo llamo, ¿Cómo hago para obtener TODOS los ret que manda?.

EDIT: Seria como el ESI (?

BloodSharp

Cita de: josue9243 en 17 Agosto 2017, 04:01 AM
¿Cómo obtengo el RetAddress de una función que está con detour?, ejemplo:

CreateFileA retorna el valor de el address de la función la cual lo llamo, ¿Cómo hago para obtener TODOS los ret que manda?.

Obtenés el retaddress con 2 líneas en assembler en una función y luego los vas metiendo en una lista en tu hook...

Cita de: josue9243 en 17 Agosto 2017, 04:01 AMEDIT: Seria como el ESI (?

esp o ebp y luego a eax


B#



josue9243

#2
Pero pasame el __asm en código ;_; sino lo hubiera hecho yo jajajjaaja

si pongo:

dword myret;

__asm
{
mov esi, eax;
mov eax, myret;
}

no creo que ande D:

BloodSharp

Cita de: josue9243 en 17 Agosto 2017, 04:26 AMsi pongo:

dword myret;

__asm
{
mov esi, eax;
mov eax, myret;
}


no creo que ande D:





DWORD STDCALL GetCaller();
asm(".globl _GetCaller;\n"
"_GetCaller:\n"
"movl 0x4(%ebp),%eax;\n"
"ret;");



B#



josue9243

Cita de: BloodSharp en 17 Agosto 2017, 04:38 AM




DWORD STDCALL GetCaller();
asm(".globl _GetCaller;\n"
"_GetCaller:\n"
"movl 0x4(%ebp),%eax;\n"
"ret;");



B#

JAAJAJAJJAJAAJA

Que grande bloodsharp :v, el tema es que lo pongo en la misma función del detour?, o donde lo pondria?.

Expliquese (? ah re :V

BloodSharp

#5
Cita de: josue9243 en 17 Agosto 2017, 04:39 AMQue grande bloodsharp :v, el tema es que lo pongo en la misma función del detour?, o donde lo pondria?.


DWORD STDCALL DondeEsta();
asm(".globl _DondeEsta;\n"
"_DondeEsta:\n"
"movl 0x4(%ebp),%eax;\n"
"retn;");

VOID Funcion(parametros...)
{
DWORD dwAquiEsta=DondeEsta();
vectorlistaAgregar(dwAquiEsta);
}



Código (asm) [Seleccionar]
alguna direccion - push parametros;
alguna direccion - call Funcion;
dwAquiEsta dir   - blablabla



Perdón pero me hiciste tentar otra vez...  :laugh:


B#



josue9243

Sep anda, tenkiu.

Lo que pasa es que flashe que el detour lo llamaba otra cosa y re que tenia un jmp :V xD