DRMTools/decrypt.py
Mike ba012dae6e Add decrypt.py
script for decrypt PlayReady or L1 keybox
2025-08-28 15:14:08 +00:00

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)