Buenas chicos. Estaba siguiendo un tutorial simple sobre shellcodes en Windows. El ejemplo que se toma es simple; creación de una shellcode básica:

mov eax, <dir messagebox>
xor ebx,ebx
push ebx x4 (para los argumentos de messageBox)
call eax

La dirección de la función es obtenida con el código arwin.c (http://www.vividmachines.com/shellcode/arwin.c).

El caso es que la shellcode es inyectada manualmente con OllyDBG en un programa que cargue previamente la librería User32.dll (la que contiene messageBox). Yo he usado el propio arwin como ejemplo. Me he releído varias veces el tutorial pero mi duda es que no sé cómo encontrar el punto exacto en el Ollydbg para inyectar la shellcode, ya que tiene que estar cargada User32.dll. ¿Cómo puedo buscar la zona del código a partir de que se cargara User32.dll? Puede parecer una tontería pero intenté cargar la shellcode al final del código y nada. Además seguí la ejecución un rato pero hay mucho código y no localizo el main principal.

Como nota decir que inyecté la shellcode en el propio código (con la función asm de C) y funciona, pero estaría bien conocer la manera de manejar el exe sin tocar el código.

Gracias de antemano chicos, saludos.