Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Binary_Death en 21 Abril 2012, 19:17 pm



Título: ¿Es posible que kernel32.dll se cargue en otra ImageBase?
Publicado por: Binary_Death en 21 Abril 2012, 19:17 pm
Estoy haciendo un código de API Hooking que modificará la IAT para saltar a la función que yo quiera, y para ello una de las cosas que debe recibir mi función inyectada es un puntero a GetProcAddress.
La función inyectada calcula ya la ImageBase de kernel32.dll, así que si quisiera podría obtener ese puntero a GetProcAddress en base a eso, pero me ahorraría bastante trabajo si pudiera pasarle como parametro al CreateRemoteThread el puntero que el programa inyector hubiera previamente obtenido, sin miedo a que esa dirección fuera errónea porque kernel32.dll se ha cargado en otra dirección en el programa en el que se inyectará el código.

Como kernel32.dll es la segunda función que un ejecutable carga en Windows (esto lo descubrió The Swash, mirando InLoadOrderModuleList de PEB_LDR_DATA) en teoría en condiciones normales debería de cargarse siempre en la misma dirección.

¡Gracias!


Título: Re: ¿Es posible que kernel32.dll se cargue en otra ImageBase?
Publicado por: Binary_Death en 22 Abril 2012, 16:53 pm
Solucionado, disculpen las molestias.

http://blogs.msdn.com/b/calvin_hsia/archive/2007/07/27/dll-image-base-addresses-are-the-same-in-xp-different-on-vista.aspx