elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  no logro invocar a getprocaddress en masm 64 bits
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: no logro invocar a getprocaddress en masm 64 bits  (Leído 3,153 veces)
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
no logro invocar a getprocaddress en masm 64 bits
« 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
  1.  
  2. extrn LoadLibraryA:PROC
  3. extrn ExitProcess:PROC
  4.  
  5. .data
  6.  
  7. wsdll db "ws2_32.dll",0
  8. wsaddr dq ?
  9.  
  10.  
  11. .code
  12. Start proc
  13. push rbp
  14. mov rbp, rsp
  15. sub rsp, 28h
  16.  
  17. mov rcx, offset [wsdll]
  18. call LoadLibraryA
  19. mov[wsaddr], rax
  20.  
  21.  
  22. xor ecx, ecx
  23. call ExitProcess
  24.  
  25. mov rsp, rbp
  26. pop rbp
  27.  
  28. Start endp
  29.  
  30. End

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
  1. mov rcx, offset[WStp]
  2. mov rdx, [wsaddr]
  3. call GetProcAddress
  4. mov[wtaddr], rax

Código
  1. mov rdx, offset[WStp]
  2. mov r8, [wsaddr]
  3. call GetProcAddress
  4. mov[wtaddr], rax

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


« Última modificación: 6 Agosto 2013, 03:48 am por Belial & Grimoire » En línea

.                                 
Flamer


Desconectado Desconectado

Mensajes: 1.051


crack, crack y mas crack...


Ver Perfil WWW
Re: no logro invocar a getprocaddress en masm 64 bits
« Respuesta #1 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/


saludos flamer


En línea

Mi Canal De Youtube y Blog

https://elblogdeflamer.blogspot.com

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: no logro invocar a getprocaddress en masm 64 bits
« Respuesta #2 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.

Fijate los samples que hay, por ej.: http://www.japheth.de/JWasm/Win64_1.html

Eso te dará una idea del tema y aparte, es compatible con MASM... :)

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: no logro invocar a getprocaddress en masm 64 bits
« Respuesta #3 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
En línea

.                                 
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
GetProcAddress alternative function
Programación Visual Basic
cobein 2 2,999 Último mensaje 9 Octubre 2008, 00:24 am
por cobein
Invocar Procedimientos
.NET (C#, VB.NET, ASP)
TheGhost(Z) 5 8,679 Último mensaje 27 Diciembre 2010, 15:08 pm
por TheGhost(Z)
Duda con GetProcAddress
Ingeniería Inversa
.:UND3R:. 5 4,131 Último mensaje 8 Agosto 2011, 19:35 pm
por .:UND3R:.
Duda GetProcAddress
Programación C/C++
naderST 4 2,417 Último mensaje 5 Marzo 2013, 03:38 am
por naderST
MASM 64 bits - directivas
ASM
sbc10 2 3,164 Último mensaje 28 Enero 2015, 17:20 pm
por sbc10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines