Арабский питон
الذهاب إلى القناة على Telegram
Привет @durov Канал не нарушает правила Telegram. Нет спама, оскорблений, порнографии или нзаконной торговли. Пожалуйста, пересмотрите жалобы. Спасибо!
إظهار المزيد4 360
المشتركون
-424 ساعات
+1387 أيام
+2 13330 أيام
أرشيف المشاركات
4 355
import requests
import json
import base64
import struct
import math
secret = 'L3)qk*@8'
hera = "279d8e55d21f4b9aa3dd896d037736e3"
kvals = [int(abs(math.sin(i+1)) * 2**32) & 0xffffffff for i in range(64)]
shift = [7,12,17,22]*4 + [5,9,14,20]*4 + [4,11,16,23]*4 + [6,10,15,21]*4
ivrev = (0x10325476, 0x98badcfe, 0xefcdab89, 0x67452301)
def md5raw(msg, iv):
a0, b0, c0, d0 = iv
length = len(msg) * 8
m = msg + b'\x80'
while len(m) % 64 != 56:
m += b'\x00'
m += struct.pack('<Q', length)
for ch in range(0, len(m), 64):
block = struct.unpack('<16I', m[ch:ch+64])
a, b, c, d = a0, b0, c0, d0
for i in range(64):
if i < 16:
f = (b & c) | (~b & d)
g = i
elif i < 32:
f = (d & b) | (~d & c)
g = (5*i+1) % 16
elif i < 48:
f = b ^ c ^ d
g = (3*i+5) % 16
else:
f = c ^ (b | ~d)
g = (7*i) % 16
f = (f + a + kvals[i] + block[g]) & 0xffffffff
a = d
d = c
c = b
b = (b + ((f << shift[i]) | (f >> (32-shift[i])))) & 0xffffffff
a0 = (a0+a) & 0xffffffff
b0 = (b0+b) & 0xffffffff
c0 = (c0+c) & 0xffffffff
d0 = (d0+d) & 0xffffffff
return struct.pack('<4I', a0, b0, c0, d0)
def md5r(msg):
return md5raw(msg, ivrev).hex()
def encrypt(plaintext, hera_key):
k = md5r(hera_key.encode() + secret.encode()).encode()
plaintext_bytes = plaintext.encode('utf-8')
expanded_key = (k * (len(plaintext_bytes) // len(k) + 1))[:len(plaintext_bytes)]
encrypted = bytes(a ^ b for a, b in zip(plaintext_bytes, expanded_key))
return base64.b64encode(encrypted).decode()
def decrypt(encrypted_b64, hera_key):
k = md5r(hera_key.encode() + secret.encode()).encode()
raw = base64.b64decode(encrypted_b64)
ks = (k * (len(raw) // len(k) + 1))[:len(raw)]
dec = bytes(a ^ b for a, b in zip(raw, ks))
return dec.decode('utf-8')
param_data = {
"accountId": "330528626",
"simCountry": "IQ",
"version": "1.5.1.0",
"deviceId": "57c25643-c605-4fed-aea3-54303ffc4af4",
"deviceName": "HONOR BRP-NX1",
"deviceType": 2,
"downloadChannelId": 1,
"shuMengId": "DU176NqaIkx5ZMlN0E9z6L4CA8jcZOCBqsg9",
"nonce": "-2143091585_3dc45ac0-4c98-4e85-8d27-982ef116c591",
"plateType": 0,
"languageId": 2,
"phoneModel": "BRP-NX1",
"X-Phone-Country": "IQ",
"X-Sim-Country": "IQ",
"AndroidId": "fd29a2a516a3954ae462650b0df384e8_1be889671d81d2f0",
"IsSubpackages": 0,
"appType": 0
}
param_json = json.dumps(param_data)
encrypted_param = encrypt(param_json, hera)
print(param_json)
print(encrypted_param)
url = "https://httpgateway.lampjkl.com/api/LudoAccountGRpcApiProxy/AccountProfileInfo"
payload = {
"paramJsonString": encrypted_param
}
headers = {
'User-Agent': "YallaLudo-1.5.1.0-(Build 1050105)-Android 36",
'Accept-Encoding': "gzip",
'traceparent': "00-69de658d6f428ae38a8982a51bfa1508-c3503ae41325951d-00",
'baggage': "service.name=ludo",
'userid': "54017415830",
'accessid': "29C660DAA70751A871E4937AED9F9B89",
'x-app-id': "ludo",
'x-baggage': "eyJ0b2tlbiI6IkZENEE5MTYxNjBDRjA2OTFDNDhCM0IxQTYzRTA1Q0NDIiwic2lnbiI6IjY1MDM0REYxRTg5MDMzQ0NGRUMwMzA5ODA3MjFERUMzIiwidGltZVNwYW4iOiIxNzg4NDQ1MTI3OTcxIiwidmVyc2lvbiI6IjEuNS4xLjAiLCJkZXZpY2VJZCI6IjU3YzI1NjQzLWM2MDUtNGZlZC1hZWEzLTU0MzAzZmZjNGFmNCIsImRldmljZU5hbWUiOiJIT05PUiBCUlAtTlgxIiwiZGV2aWNlVHlwZSI6MiwiZG93bmxvYWRDaGFubmVsSWQiOjEsInNodU1lbmdJZCI6IkRVMTc2TnFhSWt4NVpNbE4wRTl6Nkw0Q0E4amNaT0NCcXNnOSIsIm5vbmNlIjoiLTE5NjAxOTExMDNfNTNiMmM0YWEtN2EwMy00M2QwLWE4MzEtMmVhMDkxMTAzOGJhIiwicGxhdGVUeXBlIjowLCJMYW5ndWFnZUlkIjoyLCJwaG9uZU1vZGVsIjoiQlJQLU5YMSIsIlgtUGhvbmUtQ291bnRyeSI6IklRIiwiWC1TaW0tQ291bnRyeSI6IklRIiwiQW5kcm9pZElkIjoiZmQyOWEyYTUxNmEzOTU0YWU0NjI2NTBiMGRmMzg0ZThfMWJlODg5NjcxZDgxZDJmMCIsImFwcFR5cGUiOjB9",
'x-access-token': "FD4A916160CF0691C48B3B1A63E05CCC",
'x-timestamp': "1788445127981",
'versionstring': "1.5.1.0",
'x-sign': "2.0_2_4f341d1c269bbc80df2daecfeb1452d22efb9c64881b5952338afe5d5eee5c9d",
'x-hera': "279d8e55d21f4b9aa3dd896d037736e3",
'x-time': "1788445127988",
'x-medusa': "jsGacelamMfVDeU6U4HSFqr/L74k6e51+r8GO3R//HWn5UZmr4ybyykrF9ZLvEW3UDbscdVkn0mu9RNi/9yThu+KkeVwOIBT8tvL7e97rk8=",
'content-type': "application/json; charset=utf-8"
}
response = requests.post(url, data=json.dumps(payload), headers=headers)
print(response.text)
try:
response_data = json.loads(response.text)
if 'data' in response_data and isinstance(response_data['data'], str):
decrypted_response = decrypt(response_data['data'], hera)
print(decrypted_response)
except:
pass
اذا اشوف تفاعل انزل تواقيع