Título: no logro invocar a getprocaddress en masm 64 bits Publicado por: Belial & Grimoire en 6 Agosto 2013, 03:30 am hola
estuve investigando sobre el tema de rcx - r8, y encontre que hay que alinear reservando espacio para los registros que seria 20h, no tengo bien entendido si tambien hay que reservar espacio para las API o para los CALL, en un foro resolvieron un problema sumando 8 sub rsp, 20h sub rsp, 20h + 8 pero en un tutorial dice que call manda de retorno 8 bytes, asi que si 20h son 32 bytes, serian 32 + 8 = 40 entonces seria sub rsp, 28h Código: It is the caller's responsibility to allocate 32 bytes of "shadow space" (for storing RCX, RDX, R8, and R9 if needed) before calling the function. asi lo he hecho en este momento y al parecer funciono al inicio, antes solo cargaba estas dll 'C:\Windows\System32\ntdll.dll' cargado. Símbolos cargados. 'C:\Windows\System32\kernel32.dll' cargado. Símbolos cargados. 'C:\Windows\System32\KernelBase.dll' cargado. Símbolos cargados cuando agregue 28h, cargaron las demas dll 'C:\Windows\System32\ntdll.dll' cargado. Símbolos cargados. 'C:\Windows\System32\kernel32.dll' cargado. Símbolos cargados. 'C:\Windows\System32\KernelBase.dll' cargado. Símbolos cargados. 'C:\Windows\System32\ws2_32.dll' cargado. Símbolos cargados. 'C:\Windows\System32\msvcrt.dll' cargado. Símbolos cargados. 'C:\Windows\System32\rpcrt4.dll' cargado. Símbolos cargados. 'C:\Windows\System32\nsi.dll' cargado. Símbolos cargados. este es el codigo Código
ahora quise continuar con GetProcAddress, pero aqui no logro avanzar, ahora se interrumpe la ejecucion en el call de getprocaddress, lo que significa que vuelve a retornar 0, intente varias formas, por ejemplo Código
Código
tambien intente mover rsp, con 30h, 20h, etc, leyendo mas encontre Código: It is the caller's responsibility to clean the stack after the call. asi que quise borrar usando add rsp, 28h y volviendo a reservar sub rsp, 28h,tambien add rsp, 8h, add rsp, 10h, pero nada, me podrian ayudar un poco con esto porfavor? salu2 Título: Re: no logro invocar a getprocaddress en masm 64 bits Publicado por: Flamer en 6 Agosto 2013, 04:20 am hola Belial no te compliques la vida al llamar las apis asi, mejor usa el IDE de RadASM para programar junto con Masm32 usa una VM con xp aqui te dejo un link.
ricardonarvaja.info/WEB/OTROS/DE%20LA%20LISTA%20MASM32-RADSM/CURSO%20DE%20ASM%20DESDE%20CERO/ (http://ricardonarvaja.info/WEB/OTROS/DE%20LA%20LISTA%20MASM32-RADSM/CURSO%20DE%20ASM%20DESDE%20CERO/) saludos flamer Título: Re: no logro invocar a getprocaddress en masm 64 bits Publicado por: MCKSys Argentina en 6 Agosto 2013, 05:55 am @Belial & Grimoire: No he usado MASM en 64 bits, pero he visto que JWASM es mejor: http://www.japheth.de/JWasm.html (http://www.japheth.de/JWasm.html).
Fijate los samples que hay, por ej.: http://www.japheth.de/JWasm/Win64_1.html (http://www.japheth.de/JWasm/Win64_1.html) Eso te dará una idea del tema y aparte, es compatible con MASM... :) Saludos! Título: Re: no logro invocar a getprocaddress en masm 64 bits Publicado por: Belial & Grimoire en 6 Agosto 2013, 06:10 am hola flamer
gracias, se ve interesante y trae buenos ejemplos, lo estoy checando lo que sucede es que estoy usando a nasm con gcc para programar en ensamblador, y lo estaba haciendo en windows 7 de 32 bits con virtualbox, pero necesitaba usar la particion de windows que tengo instalado en mi computadora , asi que pase el codigo que tenia en virtualbox a la particion con windows para seguir estudiando, pero investigando sobre socket, encontre algunos hechos para linux en 64 bits, entonces se me hizo interesante y quise hacerlo para windows, y me dio curiosidad de rehacer el mismo codigo que habia hecho en 32bits pero en 64bits para aprender mas ahora buscando informacion y con la ayuda que he recibido, logre entender cosas que no habia logrado entender usando asm de 32bits, creo por eso me gusta complicarme, porque me ayuda a encontrar informacion o comprender cosas que no entendia en su momento gracias nuevamente por el link, y espero puedan me ayudar con el codigo de arriba salu2 ;D |