Noobgamer0111 / SubwaySurfersDecrypted

Figuring out the new encryption used for the Subway Surfers profile *.jsons.
https://gitlab.com/Noobgamer0111/SubwaySurfersDecrypted
MIT License
40 stars 7 forks source link

Looking into the code for json files #15

Open Chardelyce opened 1 month ago

Chardelyce commented 1 month ago

recently have it decrypted and found a few files that may have the keys, i am working on the script to find it all Screenshot from 2024-05-27 12-35-13 Screenshot from 2024-05-27 12-05-54 Screenshot from 2024-05-27 11-16-27 Screenshot from 2024-05-27 11-12-34

Chardelyce commented 1 month ago

trying different methods, i wish we had a list of keys :(

from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
import base64
import json

encrypted_data = "IegY21/091yYehMIQUAncP9X1ZysdCXyeguJZXrk4dtBKa/lCTaC2RzTS5ZmyV7qghKo/BE3mSVFM2EMKXx+QFYSFGFdJIqci0ClgJlMT/rCuT4oKcm9LcwVeyXji8fJNHUrudK/eWUDwqPGDLYzkWbGFebxmW/sMpi5nHHQB9h/Kyn4LM74FDv4CcyG/fi/JVWQ0Iad3qmR0nr6Rh1uUwyhzzOQ3V3Uww8TjbHF/CEzK5Jg4ucC5t2NnVxuVf4jF3lyX7ZC5yArZuOob1qwTMHavdo30jtoxeWFiLwnHrFhII4laUuKj750tAq0lUQcFTKEfqfEIcbopZPnbXXBlZfga211H+uQ/IL+DRXt2Webr06DK90NvnsroPoyAWE+57v0hjcWQaoIDAPaUOvTWDQ29tuxK9G9WeW+xNiUEAaKrQI+HL0OyPwK7qwm37evIuU9CMyvCFZ11xILE/h1LwZs9RRPrn2VvmAhwwZdAvaMeUy80tF3set8nxKNjY2SCfe0tI2GUO9c12Ky1BGA+54Qphybd8hyTx7vOyvan1zCD0/cG9YS1AhqSBA/IXISPYsmTozWc60cbVAAJz8HCAlg1ELALd8K4NpDemnmKBin4GtAITTQR47f42xV7JCGe0/iIsJiGm53OzknttgT4ZD/7RmsNIwY1a4JExNDfuFeOmPT2hwoMqJmCMUcUKFyK2D+FEcvU/d0bAKm9NgjQLEjKZ3NQr8KX553GH3dbRzQUaz4tCCtvhZEglEuHsxmvMCkC8AewwwfQ6CO936k9dLLPeVM+AL9pRLWzkW6q6Z0i0FBufwqOhs9oicjFQPcn5/C9V4HgT3XR2Sa98E3wBT9ESOAKuj1Cu0vvG/rslzwdv51YHyQxeavlTsPO1LPvbSMfWnqpLXiUSAndFNaIgX/fYYxOZI+pB3Fq6GBH1za9D5yXN5e/JE1s1n01+qUW+bhw6tJcpGFHpPescQ0GhaTrIcoloZVqKAxerEd+QVsOhjclB8URn41T85Ilmmqd8qku/GB/3iCanKWIwK7iB0kOgQGDedVLOzMqjegiNFcPtjbGY8EUuh8Hcjz9sMmkNuflXJtasJU5JTYgYnK19i/2o/OOdvaj7UNG5byNu/IFRbUlXxtlyhuERwcy0L1wSEr/UgLNIE/kBgea9Ni2CIJcT7sRtwbPvSGkE7bw/ziNFj4ltsydsSg7wwUylqDE5Gr/IPKxZvScRUkjpQvT6q/xBmc/OapoL9itCf5BTw9kgvIHlGnOOYXTpWErwv4b7+IYcjoBIsQFsh1bMkxRRFMhWtXwZHm5QQCihMo7AF0d4BWUsruTRjCe2fQbCMCOfH2+DFE+gvVG4jnY/xxxx5qXb7FGWUuTX4sgiaGpPAOUc+cUsWgBtgBg3gIWQfPUhAk0d4u8SYdCuePDYVvB+SNPS9erwKPiBkCI8XbVlKDsWWvAHjw1/sFndlAmCpqf3f51RDjppzW/V3X6Wtfaw8zWrrOEyx5aUsxdFQeuXeZNdnyuxhVayUNCCKeHdZZ/5mLBNRDS9/mJxtHink9yGhf0TYPXgh97K4qGUTDPXfFui6gx1trsP/WlYNmzoM7vUKVALeGayooNSVmgidYIGPgiu70BQ/MwP4adSvirzUtgDPK5Y6cJ69MRLAYHNaMvSDPu7Tk9rR5xRwVADw/KwDBmXOFIgCYB5sMmbIy1lBFuv2TxZ9ufSIyrNG0xm4C"

encrypted_data_bytes = base64.b64decode(encrypted_data)

iv = encrypted_data_bytes[:16]
ciphertext = encrypted_data_bytes[16:]

# List of potential keys to try
potential_keys = [
    b'abcdefghijklmnop',       # Example of a 16-byte key
    b'Another16bytekey',       # Another 16-byte key
    b'More16bytekeys123',      # Yet another example
    b'IegY21/091yYehMI'

]

# Try each key
for key in potential_keys:
    try:
        # Create AES cipher object with the key and IV
        cipher = AES.new(key, AES.MODE_CBC, iv)

        # Decrypt the ciphertext
        decrypted_data = cipher.decrypt(ciphertext)

        # Unpad the decrypted data
        plaintext_bytes = unpad(decrypted_data, AES.block_size)

        # Convert to string
        plaintext = plaintext_bytes.decode('utf-8')

        # Try to parse the JSON
        parsed_json = json.loads(plaintext)

        print(f"Decryption successful with key: {key}")
        print("Decrypted plaintext:")
        print(json.dumps(parsed_json, indent=4))
        break
    except (ValueError, UnicodeDecodeError, json.JSONDecodeError) as e:
          pass