Socket con nasm... al fin lo logre

  • 2 Respuestas
  • 5654 Vistas

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

Desconectado proxy_lainux

  • *
  • Underc0der
  • Mensajes: 132
  • Actividad:
    6.67%
  • Reputación 0
  • belial grimoire
    • Ver Perfil

Socket con nasm... al fin lo logre

  • en: Julio 20, 2013, 05:11:10 pm
pues lo logre, aun no se como usar estructuras en nasm pero logre hacerlo funcionar

Código: (asm) [Seleccionar]
[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'

res1: db "WSAStartup %d", 10, 0
res2: db "Socket %d", 10, 0
res3: db "connect %d", 10, 0
res4: db "send %d", 10 ,0

sre: db "hola mundo",0

section .bss
sn resb 10

section .text

global [email protected]
extern [email protected]
extern [email protected]
extern [email protected]
extern _printf
extern [email protected]

[email protected]:

xor eax, eax

push wsdll
call [email protected]
mov [wsaddr], eax

push WStp
push dword [wsaddr]
call [email protected]
mov [Getpc], eax

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

cmp dword [saveWSA], -1
jne mns1
je erro

mns1:
push dword [saveWSA]
push res1
call _printf

push soc
push dword [wsaddr]
call [email protected]
mov [Getpc], eax

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

push dword [soadd]
push res2
call _printf

push conn
push dword [wsaddr]
call [email protected]
mov [conaddr], eax

push dword [conaddr]
push res3
call _printf

push 0x0100007F
push 0xB9220002
mov esi, esp
push byte 16
push esi
push dword [soadd]
call [conaddr]

erro:
push 0
call [email protected]

Aunque admito que hacerlo en fasm es mucho mas sencillo

Código: (asm) [Seleccionar]
format PE console 4.0

entry start

include 'include\win32a.inc'

section '.data' data readable writable

wsadata WSADATA
saddr sockaddr_in
sock_size = $-saddr
sock dd ?
sin_addr dd ?
sin_port dd ?

section '.code' code readable executable
start:

invoke WSAStartup, 0202h, wsadata
invoke socket, AF_INET, SOCK_STREAM, 0

mov[sock], eax
mov[saddr.sin_family], AF_INET
mov[saddr.sin_port], 0xB922
mov[saddr.sin_addr], 0x0100007F

invoke connect, [sock], saddr, sock_size

invoke ExitProcess,0

section '.idata' import data readable writeable

library kernel, 'KERNEL32.DLL',\
        winsock, 'WSOCK32.DLL'

import kernel,\
       ExitProcess, 'ExitProcess'

import winsock,\
       WSAStartup, 'WSAStartup',\
       WSACleanup, 'WSACleanup',\
       socket, 'socket',\
       connect, 'connect',\
       sendto, 'sendto',\
       closesocket, 'closesocket'           
« Última modificación: Febrero 08, 2014, 05:28:21 pm por Expermicid »

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5709
  • Actividad:
    100%
  • Country: ar
  • Reputación 37
  • ANTRAX
  • Skype: underc0de.org
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email

Re:socket con nasm... al fin lo logre

  • en: Julio 20, 2013, 05:11:52 pm
Excelente trabajo Bro!!
Felicitaciones!


Desconectado Expermicid

  • *
  • Ex-Staff
  • *****
  • Mensajes: 459
  • Actividad:
    0%
  • Reputación 0
  • _-Expermicid-_
  • Skype: expermicid.xd
    • Ver Perfil

Re:socket con nasm... al fin lo logre

  • en: Julio 20, 2013, 07:43:30 pm
Muy bueno grimoire. Lo agrego al indice y cierro el post de la duda que habias tenido ;)

Saludos