comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Problema al convertir codigo de 64bits a 32bits

  • 2 Respuestas
  • 1305 Vistas

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

Desconectado proxy_lainux

  • *
  • Underc0der
  • Mensajes: 121
  • Actividad:
    1.67%
  • Reputación 0
  • belial grimoire
    • Ver Perfil
« en: Septiembre 16, 2013, 11:54:12 pm »
hola

Este codigo lo hice anteriormente para 64 bits y funciona bien, pero ahora quise hacer unos cambios para volverlo a 32bits como los registros, rax, rbx, etc... a eax, ebx,.. etc, las funciones externas tuve que hacer algunos cambios que me pedia el compilador

Pero no funciona, lo analice con ollydbg y el error sale desde el inicio, WSAStartup, lo que no entiendo es porque ya no funciono?, no se si es por el compilador, o porque lo modifique mal... podria alguien hacerme el favor de verificarlo porfavor

lo estoy haciendo en masm32, lm y link

asi lo compilo

ml /coff /c serv.asm
link /entry:Start /subsystem:console /libpath:c:/masm32/lib kernel32.lib ws2_32.lib serv.obj

Este es el codigo

Código: ASM
  1. .686
  2. .model flat, stdcall
  3. option casemap:none
  4.  
  5. extrn ExitProcess@4:PROC
  6. extrn WSAStartup@8:PROC
  7. extrn socket@12:PROC
  8. extrn connect@12:PROC
  9. extrn send@16:PROC
  10.  
  11. WSADATA STRUCT 8
  12. wVersion          WORD  ?
  13. wHighVersion      WORD  ?
  14. iMaxSocket        WORD  ?
  15. iMaxUdpDg         WORD  ?
  16. lpVendorInfo      DWORD ?
  17. szDescription     SBYTE 257 dup (?)
  18. szSystemStatus    SBYTE 129 dup (?)
  19. WSADATA ENDS
  20.  
  21. sockaddr STRUCT
  22. sa_family   WORD ?
  23. sa_port     WORD  ?
  24. sa_addr     DWORD ?
  25.             BYTE 8 dup (?)
  26. sockaddr ENDS
  27.  
  28. .const
  29. address sockaddr<2, 0B922h, 0100007Fh>
  30. sbuff BYTE "hola mundo",0
  31.  
  32. .data?
  33. wsadata WSADATA <>
  34. Socket DWORD ?
  35.  
  36. .code
  37.  
  38. Start proc
  39. push ebp
  40. mov ebp, esp
  41.  
  42. lea edx, wsadata
  43. mov ecx, 2h
  44. call WSAStartup@8
  45.  
  46. mov edx, 0h
  47. mov ecx, 1h
  48. mov ebx, 2h
  49. call socket@12
  50. mov Socket, eax
  51.  
  52. mov edx, 16h
  53. lea ecx, address
  54. mov ebx, Socket
  55. call connect@12
  56.  
  57. mov edx, 0h
  58. mov ecx, SIZEOF sbuff
  59. mov ebx, offset sbuff
  60. mov eax, Socket
  61. call send@16
  62.  
  63. mov eax, 0
  64. call ExitProcess@4
  65.  
  66. mov esp, ebp
  67. pop ebp
  68.  
  69. Start endp
  70. END
  71.  
« Última modificación: Febrero 08, 2014, 05:27:24 pm por Expermicid »

Desconectado Karcrack

  • *
  • Underc0der
  • Mensajes: 87
  • Actividad:
    0%
  • Reputación 0
  • Se siente observado ¬¬'
    • Ver Perfil
« Respuesta #1 en: Septiembre 17, 2013, 11:02:56 am »
En 32bits la convención de llamada de las APIs de Windows es stdcall... Debes hacer push de los parámetros en lugar de meterlos en eax, ebx, ecx, edx...

Ejemplo de fix:
Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
push 0h
push SIZEOF sbuff
push offset sbuff
push Socket
call send
I code for $$$.

(PGP ID 0xCC050E77)
ASM, C, C++, VB6... skilled [malware] developer

Desconectado proxy_lainux

  • *
  • Underc0der
  • Mensajes: 121
  • Actividad:
    1.67%
  • Reputación 0
  • belial grimoire
    • Ver Perfil
« Respuesta #2 en: Septiembre 17, 2013, 02:03:10 pm »
hola

gracias, ya funciona

eso explica porque tuve que usar registros que no usaba en 64bits..

gracias nuevamente

salu2

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 7624
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1641
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2228
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 3001
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3477
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon