[SOLUCIONADO] Como usar structaddr_in en nasm?

Iniciado por proxy_lainux, Julio 18, 2013, 03:03:48 PM

Tema anterior - Siguiente tema

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

Julio 18, 2013, 03:03:48 PM Ultima modificación: Febrero 08, 2014, 05:28:15 PM por Expermicid
trate de hacer un socket en nasm, es algo novato pero espero me puedan ayudar con esto

estoy tratando de usar la estructura sockaddr_in, y no logro entender como usarla en nasm asi que encontre que es posible acceder mediante direcciones

trate de usar las direcciones pero creo lo hago mal, porque usando netcat no se conecta, alguien me podria explicar como usar sockaddr_in y/o decirme que estoy haciendo mal, porfavor

les dejo el codigo

Código: asm
[BITS 32]

section .data

wsdll: db 'ws2_32.dll',0
wsaddr: dd '0xFFFFFFFF'
Getpc: dd '0xFFFFFFFF'

WStp: db 'WSAStartup',0
WSaddr: dd '0xFFFFFFFF'
WSD: dd 'WSADATA',0
saveWSA: dd '0xFFFFFFFF'
soc: db 'socket',0
soadd: dd '0xFFFFFFFF'
conn: db 'connect', 0
conaddr: dd '0xFFFFFFFF'
sen: db 'send', 0
sendadd: dd '0xFFFFFFFF'

sre: db "hola mundo",0

section .bss
sn resb 10

section .text

global _WinMain@16
extern _ExitProcess@4
extern _LoadLibraryA@4
extern _GetProcAddress@8
extern _printf
extern _WSAStartup@8

_WinMain@16:

xor eax, eax

push wsdll
call _LoadLibraryA@4
mov [wsaddr], eax

push WStp
push dword [wsaddr]
call _GetProcAddress@8
mov [Getpc], eax

push WSD
push 0x202
call [Getpc]
mov [saveWSA], eax

push soc
push dword [wsaddr]
call _GetProcAddress@8
mov [Getpc], eax

push 6
push 1
push 2
call [Getpc]
mov [soadd], eax

push conn
push dword [wsaddr]
call _GetProcAddress@8
mov [conaddr], eax

push dword [soadd]
mov eax, 0x00000000
mov eax, 0x00000000
mov eax, 0x0100007f
mov eax, 0x5c110002
mov eax, 16
push eax
call [conaddr]

push sen
push dword [wsaddr]
call _GetProcAddress@8
mov [sendadd], eax

push dword [soadd]
push sre
push sn
push 0
call [sendadd]

erro:
push 0
call _ExitProcess@4


hago pruebas con la direccion local "127.0.0.1" y el puerto "4444"

salu2