Files
cbz/profiles/dynamic.py
T
2024-03-17 14:47:33 +01:00

106 lines
3.5 KiB
Python

import secrets
import random
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
def fields(value: dict) -> dict:
return {key: str(val) for key, val in value.items()}
def get_id() -> str:
group1 = '-'.join([f'{random.randint(0, 255):02x}' for _ in range(6)])
group2 = '-'.join([f'{random.randint(0, 255):02x}' for _ in range(6)])
return f'{group1}:{group2}'
if __name__ == '__main__':
user_email = 'example@mail.com'
user_token = secrets.token_hex(16)
user_subscription = 'register'
device_token = secrets.token_hex(16)
device_platform = 49
device_id = get_id()
app_version = 6169
media_id = 'B0CPPH5WK4'
pssh = 'CAESEM235gyo/kFAk//K99EUxOAaBmFtYXpvbiI1Y2lkOnpiZm1ES2orUVVDVC84cjMwUlRFNEE9PSxRWVJUWXJnd1JxbXBzMngvTnM0alVRPT0qAlNEMgA='
certificate = 'CAUSwgUKvAIIAxIQCuQRtZRasVgFt7DIvVtVHBi17OSpBSKOAjCCAQoCggEBAKU2UrYVOSDlcXajWhpEgGhqGraJtFdUPgu6plJGy9ViaRn5mhyXON5PXmw1krQdi0SLxf00FfIgnYFLpDfvNeItGn9rcx0RNPwP39PW7aW0Fbqi6VCaKWlR24kRpd7NQ4woyMXr7xlBWPwPNxK4xmR/6UuvKyYWEkroyeIjWHAqgCjCmpfIpVcPsyrnMuPFGl82MMVnAhTweTKnEPOqJpxQ1bdQvVNCvkba5gjOTbEnJ7aXegwhmCdRQzXjTeEV2dO8oo5YfxW6pRBovzF6wYBMQYpSCJIA24ptAP/2TkneyJuqm4hJNFvtF8fsBgTQQ4TIhnX4bZ9imuhivYLa6HsCAwEAAToPYW1hem9uLmNvbS1wcm9kEoADETQD6R0H/h9fyg0Hw7mj0M7T4s0bcBf4fMhARpwk2X4HpvB49bJ5Yvc4t41mAnXGe/wiXbzsddKMiMffkSE1QWK1CFPBgziU23y1PjQToGiIv/sJIFRKRJ4qMBxIl95xlvSEzKdt68n7wqGa442+uAgk7CXU3uTfVofYY76CrPBnEKQfad/CVqTh48geNTb4qRH1TX30NzCsB9NWlcdvg10pCnWSm8cSHu1d9yH+2yQgsGe52QoHHCqHNzG/wAxMYWTevXQW7EPTBeFySPY0xUN+2F2FhCf5/A7uFUHywd0zNTswh0QJc93LBTh46clRLO+d4RKBiBSj3rah6Y5iXMw9N9o58tCRc9gFHrjfMNubopWHjDOO3ATUgqXrTp+fKVCmsGuGl1ComHxXV9i1AqHwzzY2JY2vFqo73jR3IElr6oChPIwcNokmNc0D4TXtjE0BoYkbWKJfHvJJihzMOvDicWUsemVHvua9/FBtpbHgpbgwijFPjtQF9Ldb8Swf'
multipart_data = MultipartEncoder(
fields({
'T': 10,
'B': 6,
'C': user_email,
'D': user_token,
'E': user_subscription,
'F': device_token,
'G': device_platform,
'H': device_id,
'I': 1,
'Z': app_version,
'K': 2,
'L': media_id,
'M': pssh,
'N': certificate
})
)
# @Info: Challenge
r = requests.request(
method='POST',
url='https://drm-w-j2.dvdfab.cn/ex/',
data=multipart_data,
headers={
'Accept': '*/*',
'Content-Type': multipart_data.content_type,
'Expect': '100-continue',
'User-Agent': 'DVDFab'
}
)
r.raise_for_status()
challenge = r.json()['FB']
print(f'[+] Challenge: {challenge}')
licence = '' # TODO: AMZ License
# @Info: Keys
multipart_data = MultipartEncoder(
fields({
'T': 12,
'B': 6,
'C': email,
'D': user_token,
'E': user_subscription,
'F': device_token,
'G': device_platform,
'H': device_id,
'I': 1,
'Z': app_version,
'K': 2,
'L': media_id,
'M': pssh,
'N': certificate,
'O': licence
})
)
r = requests.request(
method='POST',
url='https://drm-w-j2.dvdfab.cn/ex/',
data=multipart_data,
headers={
'Accept': '*/*',
'Content-Type': multipart_data.content_type,
'Expect': '100-continue',
'User-Agent': 'DVDFab'
}
)
r.raise_for_status()
content = r.json()
data = content['D']
mod_key = content['T']