Пишем ICQ спаммер

Maks

 

Итак, для написания этой проги нам понадобятся:

 

 

Для начала поставим себе компонент. Делается это очень просто. Загружаем Delphi, выбираем пункт меню Component > Install Component, появится диалоговое окно  

 

 

Нажимаем кнопку обзор и указываем файл ICQClient.pas и жмем OK. После этого в появившемся окне жмем кнопку Compile. Все компонент у нас поставлен. Теперь перейдем к логике программы, а логика такова:

 

1.      Коннектимся к ICQ Серверу через прокси

2.      Получаем новый UIN

3.      Спаммим

4.      Убиваем UIN

5.      Дисконнектимся

 

Для начала спроектируем интерфейс проги. Создаем новый проект File > New > Application и сохраняем в какую – нибудь папку. Нам понадобятся 5 GroupBox’ ов,

7 Edit ‘ ов,  2 поля Memo, 1 ToolBar c 4 кнопками, 8 надписей (Label), 1 кнопкy, и компоненты ImageList, OpenDialog, ICQClient.  Вот примерное расположение, которое у меня получилось

       

 

 

 

 

Кликаем 2 раза на кнопке Connect и пишем следушие:

 

procedure TForm1.ToolButton1Click(Sender: TObject);

Var

 

w : word; //Описываем переменные

i:integer;

 

begin

 

randomize; //Включаем генератор случайных чисел

 

m:=random(100); // Приравниваем m cслучайное число из 100 (оно будет в качестве пароля)

 

i:=strtoint(Edit4.Text); // Приравниваем переменной порт ICQ сервера

 

w:=i; // Приравневаем значение w

 

ICQClient1.ProxyHost:=Edit1.Text;  // Заполняем адрес прокси сервера

Memo3.Lines.Add('Proxy host ' + Edit1.Text); // Добавляем 

 

ICQClient1.ProxyPort:=StrToInt(Edit2.text);

Memo3.Lines.Add('Proxy port ' + Edit2.Text);

 

ICQClient1.ICQServer:=Edit3.Text;

Memo3.Lines.Add('ICQ host ' + Edit3.Text);

 

ICQClient1.ICQPort:=w;

Memo3.Lines.Add('ICQ Port ' + Edit4.Text);

 

ICQClient1.RegisterNewUIN(inttostr(m)); // Регистрируем новый UIN

 

end; 

Выделяем объект ICQClient и переходим в инспекторе обьктов на события этого объекта. Ищем событие OnNewUINRegistered оно возникает, когда мы зарегистрировали новый UIN.

 

procedure TForm1.ICQClient1NewUINRegistered(Sender: TObject; UIN: String);

 

begin

 

Memo3.Lines.Add('You UIN ' + UIN + 'Password' + inttostr(m)) ;//  Вносим в поле UIN и пароль   

 

Edit5.Text:=UIN;

 

Edit6.Text:=inttostr(m);

 

ToolButton2.Enabled:=true; // Делаем активными кнопки

 

ToolButton2.Enabled:=true;

 

end;

 

Теперь нужно событие OnNewUINRefused возникающие когда нам не дадут UIN

 

procedure TForm1.ICQClient1NewUINRefused(Sender: TObject);

 

begin

 

Memo3.Lines.Add('You not registred UIN'); // Нам не дают UIN

 

end;

 

На сервер мы законектились, теперь нужно загрузить в поле Memo1 тех, кого мы будем спаммить

 

 procedure TForm1.Button1Click(Sender: TObject);

 

var

 

R :Integer; // Описываем переменную

 

begin

 

 R:=0; // Приравниваем ее 0

 

 if openDialog1.Execute = true then // Открываем диалог

 

  begin

 

  Memo1.Lines.LoadFromFile(OpenDialog1.FileName); // Загружаем из файла UINы

 

  While Memo1.Lines[R] <> '' do // Считаем строки в поле и выводим их в надпись Label

 

  begin

 

   R:= R + 1;

  end;

 

   Label7.Caption:=IntToStr(R);

 

  end;

 

end;

 

Теперь нам нужно разослать спам и убить UIN

 

procedure TForm1.ToolButton2Click(Sender: TObject);

 

var

 

I : Integer; // Описываем переменные

 

e: word;

 

begin

 

T:= False;

 

For i:= 0 to Strtoint(label7.Caption) do // Организуем цикл

 

 begin

 

  If T = True Then Если нажата кнопка стоп

 

   begin

 

   Break; Обрываем цикл

 

  Close;  Завершаем работу

 

   end;

 

 e:=strtoint(Edit7.text);

 

 ICQClient1.SendMessage(e, Edit7.Text); // Рассылаем

 

 end;

 

  ICQClient1.UnregisterUIN(IntToStr(m)); // Убиваем UIN

 

  ICQClient1.Disconnect; // Дисконнектимся

 

end;

 

Теперь нужно написать код на кнопку Стоп и Выход

 

procedure TForm1.ToolButton3Click(Sender: TObject);

 

begin

 

T:=True;

 

end;

 

и соответсвенно на выход  

 

 

procedure TForm1.ToolButton4Click(Sender: TObject);

 

begin

 

Close;

 

end;

 

Осталось описать 2 глобальные переменные

 

var

 

  Form1: TForm1;

 

  M: Integer;

 

  T: Boolean;

 

Ну, вот cобственно и все.

 

(с) Maks    

 

 

X