- Регистрация
- 9 Май 2015
- Сообщения
- 1,548
- Баллы
- 155
Код:
Код:
RsaCalc, httpsend, ssl_openssl, System.RegularExpressions, synacode
Описание класса:
Код:
type
Thread = class(TThread)
private
RSA: TRSACalculator;
HTTP: THTTPSend;
Scr: TStringList;
Data: TStringStream;
tEncryptPass: AnsiString;
tPublicKey: String;
tRegEx: TRegEx;
tTimeStamp: String;
protected
procedure Execute; override;
end;
Процедура:
Код:
procedure Thread.Execute;
const
Password = 'password';
Username = 'username';
begin
HTTP := THTTPSend.Create;
Scr := TStringList.Create;
Data := TStringStream.Create;
HTTP.HTTPMethod('GET', 'https://steamcommunity.com/login/getrsakey?username=' + Username);
Scr.LoadFromStream(HTTP.Document);
tPublicKey := tRegEx.Matches(Scr.Text, 'publickey_mod":"(.*?)"', [roIgnoreCase, roMultiLine]).Item[0].Groups[1].Value;
tTimeStamp := tRegEx.Matches(Scr.Text, 'timestamp":"(.*?)"', [roIgnoreCase, roMultiLine]).Item[0].Groups[1].Value;;
HTTP.Clear;
Synchronize(
procedure
begin
RSA := TRSACalculator.Create(Form1);
RSA.Calculate(Password, tPublicKey, tEncryptPass);
FreeAndNil(RSA);
end);
HTTP.MimeType := 'application/x-www-form-urlencoded';
Data.WriteString('donotcache=' + '&password=' + EncodeTriplet(tEncryptPass, '%', URLSpecialChar + URLFullSpecialChar) +
'&username=' + Username + '&twofactorcode=' + '&emailauth=' +
'&loginfriendlyname=' + '&captchagid=-1' + '&captcha_text=' +
'&emailsteamid=' + '&rsatimestamp=' + tTimeStamp + '&remember_login=false');
HTTP.Document.LoadFromStream(Data);
HTTP.HTTPMethod('POST', 'https://steamcommunity.com/login/dologin/');
FreeAndNil(HTTP);
FreeAndNil(Scr);
FreeAndNil(Data);
end;