qs-uvk5-firmware-modder/encdec.py

44 wiersze
908 B
Python
Czysty Zwykły widok Historia

2023-05-13 21:25:27 +00:00
#!/usr/bin/env python3
import os
from pathlib import Path
2023-05-14 08:11:27 +00:00
from sys import argv
2023-05-13 21:25:27 +00:00
2023-05-15 12:31:20 +00:00
from lib.base import eprint, encrypt, decrypt
2023-05-13 21:25:27 +00:00
def usage(info = None):
if info:
2023-05-14 07:18:12 +00:00
eprint(info)
eprint(f'Usage: {argv[0]} <e|d> filename.bin > raw.bin')
eprint(f' Example decode: {argv[0]} d k5_26_encrypted.bin > k5_26_raw.bin')
eprint(f' Example encode: {argv[0]} e k5_26_raw.bin > k5_26_encrypted.bin')
2023-05-13 21:25:27 +00:00
exit(128)
2023-05-14 07:18:12 +00:00
2023-05-13 21:25:27 +00:00
def main():
if len(argv) != 3:
usage()
encdec = argv[1]
fname = argv[2]
2023-05-14 08:11:27 +00:00
file_bytes = Path(fname).read_bytes()
2023-05-13 21:25:27 +00:00
if encdec == 'd':
2023-05-14 08:11:27 +00:00
decrypted = decrypt(file_bytes)
2023-05-13 21:25:27 +00:00
os.write(1, bytes(decrypted))
2023-05-14 07:18:12 +00:00
eprint('Success!')
2023-05-13 21:25:27 +00:00
return
2023-05-14 07:18:12 +00:00
2023-05-13 21:25:27 +00:00
if encdec == 'e':
2023-05-14 08:11:27 +00:00
encrypted = encrypt(file_bytes)
2023-05-13 21:25:27 +00:00
os.write(1, bytes(encrypted))
2023-05-14 07:18:12 +00:00
eprint('Success!')
2023-05-13 21:25:27 +00:00
return
usage()
if __name__ == '__main__':
main()