42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from Crypto.Cipher import AES
|
|
from Crypto.Util.Padding import pad, unpad
|
|
|
|
|
|
def save_bgroup(data):
|
|
with open("bgroupcert.dat", "wb") as f:
|
|
f.write(data)
|
|
|
|
|
|
def save_zgpriv(data):
|
|
with open("zgpriv.dat", "wb") as f:
|
|
f.write(data[:32])
|
|
|
|
|
|
def save_keybox(data):
|
|
with open("keybox.dat", "wb") as f:
|
|
f.write(data[:128])
|
|
|
|
|
|
|
|
def decrypt_aes_ecb(input_file, key):
|
|
with open(input_file, "rb") as f:
|
|
encrypted_data = f.read()
|
|
cipher = AES.new(bytes.fromhex(key), AES.MODE_ECB)
|
|
dec_data = cipher.decrypt(pad(encrypted_data, 16))
|
|
if b"INNER_MSTAR" in dec_data:
|
|
fixed_data = dec_data[64:]
|
|
if b"CHAI" in fixed_data:
|
|
print("BGROUPCERT.dat SAVED AS bgroupcert.dat")
|
|
save_bgroup(fixed_data)
|
|
elif b"kbox" in fixed_data:
|
|
print("WIDEVINE KEYBOX SAVED AS keybox.dat")
|
|
save_keybox(fixed_data)
|
|
else:
|
|
print("ZGPRIV saved as zgpriv.dat")
|
|
save_zgpriv(fixed_data)
|
|
else:
|
|
print("Key not working")
|
|
|
|
key = "0007FF4154534D92FC55AA0FFF0110E0"
|
|
decrypt_aes_ecb("keybox_encrypted.dat", key)
|