Closed zTottos closed 1 year ago
more details on the login request it does this
update
Perhaps the root of this problem is changing the json keys in the response for the account. I can't say for sure, I'll check it now.
thanks Fsocguy
Anyway, I was right. Apparently not so long ago Steam updated the method of logging in via webapi and therefore the old method is not so effective anymore. I'll start working on the fix now.
import requests
import base64
import rsa
from bs4 import BeautifulSoup
login = ''
password = ''
rsa_req = requests.get(f'https://api.steampowered.com/IAuthenticationService/GetPasswordRSAPublicKey/v1/?account_name={login}').json()
mod = int(rsa_req['response']['publickey_mod'], 16)
exp = int(rsa_req['response']['publickey_exp'], 16)
pub_key = rsa.PublicKey(mod, exp)
password_encrypted = base64.b64encode(rsa.encrypt(password.encode(), pub_key))
print(rsa_req)
login = requests.post(url='https://api.steampowered.com/IAuthenticationService/BeginAuthSessionViaCredentials/v1/', data={
'device_friendly_name': 'SteamOS',
'account_name': login,
'encrypted_password': password_encrypted,
'encryption_timestamp': rsa_req['response']['timestamp'],
'remember_login': 'false',
'platform_type': 'Win64',
'device_details': 'Chrome Browser',
'guard_data': '',
'language': 'en-US'
}).json()
print(login)
Here's what the server's response
RSA Request: {'response': {'publickey_mod': 'c23da48357491c221b6c88b661a83b197addd4f6cc4caeda8343d0870cd65665d371752cd930af211968218b993083bcd5c84c66e0ee1f0cbd42e851133a6c3e0fc1eda664d902ed4e6c093a76e09da9d2ba59ba45be30430ecdfa77776944582c36aaddf0464f629c85deb288205f8c086cb20898e42e1d1efd90d682a312c0c2b8e267ac272ee06758ef03f9bc84fdca13ff8db61780714372d4326363f02bc52b1071a9f25972524ee96fb3d4f70153712ce64d947565126e87d3856f3824dd22a6b2ee2d4a06b841315788e2eb9d6648a9b9dcc0756304b5664f55f830a139ad594104ba160d23ffe00fac933b73346c725d5b4eda377b2dbba47063ce01', 'publickey_exp': '010001', 'timestamp': '574139500000'}}
Login Request: {'response': {'client_id': '14904774223363719059', 'request_id': 'r0TIb6o+X3hvpjJmFUBIqA==', 'interval': 0.10000000149011612, 'allowed_confirmations': [{'confirmation_type': 1}], 'steamid': '76561198002871455'}}
figured out the same but i'm not really familiar with checkers so couldn't really fix it
anynews ?
I've made a patch, but it's in the test period now, the test itself is a bit long because my requests are often get banned by steam, and because of that I have to sit for a couple hours to re-request. If I knew how to bypass that, it would be faster. Don't worry, I'll try to release the patch as soon as possible.
i can help if you send me any contact ?
Thanks for your interest in helping me, I really appreciate it. But now I don't need help, the code is already fully written and tested, now I'm finalizing the parser and will release a new version of the checker soon! I attach a photo of the result:
Good work G
The update is out, check it out, message me if anything happens
GOOD WORK G !!