Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;compile with:
- ; NASMW.EXE -fobj net.asm
- ;link with:
- ; ALINK.EXE net.obj -c -oPE -subsys console
- %include "c:\w32nasm\inc\win32n.inc"
- EXTERN __getmainargs
- IMPORT __getmainargs Msvcrt.dll
- EXTERN ExitProcess
- IMPORT ExitProcess kernel32.dll
- EXTERN GetCommandLineW
- IMPORT GetCommandLineW kernel32.dll
- EXTERN printf
- IMPORT printf Msvcrt.dll
- EXTERN CommandLineToArgvW
- IMPORT CommandLineToArgvW Shell32.dll
- EXTERN WSAStartup
- IMPORT WSAStartup Ws2_32.dll
- EXTERN WSAGetLastError
- IMPORT WSAGetLastError Ws2_32.dll
- EXTERN socket
- IMPORT socket Ws2_32.dll
- EXTERN htons
- IMPORT htons Ws2_32.dll
- EXTERN htonl
- IMPORT htonl Ws2_32.dll
- EXTERN inet_addr
- IMPORT inet_addr Ws2_32.dll
- EXTERN closesocket
- IMPORT closesocket Ws2_32.dll
- EXTERN WSACleanup
- IMPORT WSACleanup Ws2_32.dll
- EXTERN connect
- IMPORT connect Ws2_32.dll
- EXTERN send
- IMPORT send Ws2_32.dll
- EXTERN recv
- IMPORT recv Ws2_32.dll
- EXTERN strtol
- IMPORT strtol Msvcrt.dll
- EXTERN ExitProcess
- IMPORT ExitProcess kernel32.dll
- EXTERN memcpy
- IMPORT memcpy Msvcrt.dll
- EXTERN memset
- IMPORT memset Msvcrt.dll
- EXTERN atoi
- IMPORT atoi Msvcrt.dll
- EXTERN bind
- IMPORT bind Ws2_32.dll
- EXTERN listen
- IMPORT listen Ws2_32.dll
- EXTERN accept
- IMPORT accept Ws2_32.dll
- STRUC WSADATA
- wVersion resw 1
- wHighVersion resw 1
- szDescription resb 256+1
- szSystemStatus resb 128+1
- iMaxSockets resw 1
- iMaxUdpDg resw 1
- lpVendorInfo resw 1
- ENDSTRUC
- STRUC SOCKADDR_IN
- sin_family resw 1
- sin_port resw 1
- sin_addr resb 4
- sin_zero resb 8
- ENDSTRUC
- segment .data USE32
- CR equ 0Dh
- LF equ 0Ah
- wsaData dd WSAdata ; pointer to structure
- sockAddr dd SOCKADDR_IN ; pointer to structure
- hSocket resd 1
- cSocket resd 1
- msginitialized db " starting connection",CR,LF,0
- SECTION CODE USE32 CLASS=CODE
- ..start:
- ;-----------------------------------------
- ;initialize the winsock library
- ;-----------------------------------------
- push dword wsaData
- push dword 2
- call [WSAStartup]
- ;--------------------------------
- ;check winsock version
- ;--------------------------------
- _sockversion:
- cmp byte[wsaData+wVersion],2
- ;-----------------------
- ;Create a socket
- ;-----------------------
- __createsocket:
- mov [sockAddr+sin_family], dword 2
- mov [sockAddr+sin_addr],dword 0
- mov [sockAddr+sin_port],word 0xaaa
- push dword IPPROTO_TCP
- push dword SOCK_STREAM
- push dword AF_INET
- call [socket]
- mov [hSocket],eax
- push dword 0x10
- push dword sockAddr
- push dword [hSocket]
- call [bind]
- push dword 0x5
- push dword [hSocket]
- call [listen]
- forever:
- push dword 0x0
- push dword 0x0
- push dword [hSocket]
- call [accept]
- mov [cSocket], eax
- jmp forever
- _end:
- push dword[cSocket]
- call [closesocket]
- push dword[hSocket]
- call[closesocket]
- call[WSACleanup]
- _finished:
- xor eax,eax
- call[ExitProcess]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement