[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Программирование » С/С++, C#, Delphi, .NET, Asm » ICQ utils (Исходный код регистрации уинов на рамблер)
ICQ utils
Hacker
Offline
Дата: Воскресенье, 22.04.2012, 16:35 | Сообщение # 1
Группа: Администратор
Сообщений: 366
Репутация: off
Code
unit Unit1;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, XPMan, StdCtrls, ExtCtrls, IdAntiFreezeBase, IdAntiFreeze,
   IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, JPEG, StrUtils,
   IdMessage, IdMessageClient, IdPOP3;

type
   TForm1 = class(TForm)
     Button1: TButton;
     GroupBox1: TGroupBox;
     Edit1: TEdit;
     GroupBox2: TGroupBox;
     Image1: TImage;
     Edit2: TLabeledEdit;
     Button2: TButton;
     GroupBox3: TGroupBox;
     IdAntiFreeze1: TIdAntiFreeze;
     Timer1: TTimer;
     HTTP: TIdHTTP;
     Timer2: TTimer;
     IdPOP31: TIdPOP3;
     IdMessage1: TIdMessage;
     Memo2: TMemo;
     procedure Button1Click(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure Button2Click(Sender: TObject);
     procedure Timer1Timer(Sender: TObject);
     procedure Edit2KeyPress(Sender: TObject; var Key: Char);
     procedure Timer2Timer(Sender: TObject);
     procedure Activat(Mail,Pass:String);
     procedure Log(s:String);
   private
     { Private declarations }
   public
     { Public declarations }
   end;

var
   Form1: TForm1;
   Capcha,mail,pass,karmaSyncKey,gnm:String;
   mem:TMemoryStream;
   TS:TStringList;
   myFile:TextFile;
implementation

{$R *.dfm}

procedure TForm1.Log(s:String);
begin
Memo2.Lines.Add('('+TimeToStr(Time)+') '+s);
end;

procedure TForm1.Button1Click(Sender: TObject);
var buf:String;
begin
Button1.Enabled:=False;
Buf:=http.Get('http://www.icq.com/join/ru');
Capcha:=Copy(buf,pos('class="captcha_image"',buf)+65,Length(buf));
Delete(Capcha,pos('"',Capcha),length(Capcha));
karmaSyncKey:=Copy(buf,pos('karmaSyncKey',buf)+21,Length(buf));
karmaSyncKey:=Copy(karmaSyncKey,1,pos('"',karmaSyncKey)-1);
gnm:=Copy(buf,pos('name="gnm"',buf)+18,length(buf));
gnm:=Copy(gnm,1,pos('"',gnm)-1);
http.Get('http://www.icq.com/utils/captcha/gnm/'+capcha,mem);
mem.Position:=0;
image1.Picture.Graphic:=TJpegImage.Create;
image1.Picture.Graphic.LoadFromStream(mem);
Edit2.SetFocus;
Button1.Enabled:=true;
end;

procedure TForm1.FormCreate(Sender: TObject);
var Patch:String;
begin
mem:=TMemoryStream.Create;
TS:=TStringList.Create;
Patch:=ExtractFilePath(Application.ExeName);
If FileExists(Patch+'UINs.txt')=false then Memo2.Lines.SaveToFile(Patch+'UINs.txt');
AssignFile(myFile,Patch+'UINs.txt');
SystemParametersInfo(SPI_SETBEEP,0,nil,SPIF_SENDWININICHANGE);
end;

procedure TForm1.Button2Click(Sender: TObject);
var s:string;
begin
mail:=Copy(Edit1.Text,1,pos(';',Edit1.Text)-1);
Pass:=Copy(Edit1.Text,pos(';',Edit1.Text)+1,Length(Edit1.Text));
if mail='' then exit;
if pass='' then exit;
if Edit2.Text='' then exit;
Button2.Enabled:=false;
TS.Clear;
TS.Add('karmaSyncKey='+karmaSyncKey);
TS.Add('first_name=Alexey');
TS.Add('last_name=Putin');
TS.Add('email='+mail);
TS.Add('password='+Pass);
TS.Add('retype_password='+Pass);
TS.Add('birthday_month=9');
TS.Add('birthday_day=6');
TS.Add('birthday_year=1984');
TS.Add('gender=1');
TS.Add('captcha='+Edit2.Text);
TS.Add('gnm='+gnm);//тут кстати можно применить TStrings Сократив тем самым код
s:=Utf8ToAnsi(http.Post('http://www.icq.com/join/ru',ts));
http.Disconnect;
Edit2.Clear;
if pos('Почти готово!',s)>0 then begin
Log('Регистрационная информация отправлена на Email');
Log('Жду '+IntToStr(Timer1.Interval div 1000)+' секунд');
Timer1.Enabled:=true;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
timer1.Enabled:=False;
Log('Проверяю почту');
Refresh;
Activat(Mail,Pass);
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then Button2.Click;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
Timer2.Interval:=1000;
GroupBox3.Caption:='Status - '+TimeToStr(Time);
end;

procedure TForm1.Activat(Mail,Pass:String);
var s:String;
begin
TS.Clear;
IdPOP31.Host:='mail.rambler.ru';
IdPOP31.Username:=Mail;
IdPOP31.Password:=Pass;
IdPOP31.Port:=110;
IdPOP31.Connect;
if IdPOP31.CheckMessages = 0 then begin
Log('Сообщение пока не получено');
Log('Жду ещё '+IntToStr(Timer1.Interval div 1000)+' секунд');
Timer1.Enabled:=true;
IdPOP31.Disconnect;
Button2.Enabled:=true;
exit;
end;
IdPOP31.Retrieve(1,IdMessage1);
IdPOP31.Disconnect;
TS.Clear;
TS.AddStrings(TIdText(IdMessage1.MessageParts.Items[0]).Body);
s:=Copy(TS.Text,pos('href="',TS.Text)+6,Length(TS.Text));
s:=Copy(s,1,pos('"',s)-1);
s:=Utf8ToAnsi(HTTP.Get(s));
Button2.Enabled:=true;
if pos('Вы успешно зарегистрировались в ICQ',s)>0 then begin
s:=HTTP.Response.RawHeaders.GetText;
s:=Copy(s,pos('karma_login=',s)+12,Length(s));
s:=Copy(s,1,pos(';',s)-1);
Append(myFile);
WriteLn(myFile,s+';'+pass);
CloseFile(myFile);
Log('UIN зарегистрирован');
Log(s+';'+pass);
end;
end;

end.


Персонажи для Галактики знакомств
Форум » Программирование » С/С++, C#, Delphi, .NET, Asm » ICQ utils (Исходный код регистрации уинов на рамблер)
  • Страница 1 из 1
  • 1
Поиск: