kopia lustrzana https://github.com/fagci/qs-uvk5-firmware-modder
refactor: consistency
rodzic
1778268860
commit
9547acd6c4
6
uvk5.py
6
uvk5.py
|
@ -28,7 +28,7 @@ def eprint(*args, **kwargs):
|
||||||
print(*args, **kwargs, file=stderr)
|
print(*args, **kwargs, file=stderr)
|
||||||
|
|
||||||
|
|
||||||
def xor(var):
|
def xor_fw(var):
|
||||||
return bytes(a ^ b for a, b in zip(var, cycle(KEY_FW)))
|
return bytes(a ^ b for a, b in zip(var, cycle(KEY_FW)))
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,14 +61,14 @@ def crc16(data):
|
||||||
|
|
||||||
|
|
||||||
def decrypt(data):
|
def decrypt(data):
|
||||||
decrypted = xor(data)
|
decrypted = xor_fw(data)
|
||||||
version = decrypted[V_START:V_END].decode().rstrip('\x00')
|
version = decrypted[V_START:V_END].decode().rstrip('\x00')
|
||||||
return (decrypted[:V_START] + decrypted[V_END:-CRC_LEN], version)
|
return (decrypted[:V_START] + decrypted[V_END:-CRC_LEN], version)
|
||||||
|
|
||||||
|
|
||||||
def encrypt(data, version='2.01.26'):
|
def encrypt(data, version='2.01.26'):
|
||||||
v = make_16byte_version(version)
|
v = make_16byte_version(version)
|
||||||
encrypted = xor(data[:V_START] + v + data[V_START:])
|
encrypted = xor_fw(data[:V_START] + v + data[V_START:])
|
||||||
checksum = crc16(encrypted)
|
checksum = crc16(encrypted)
|
||||||
return encrypted + checksum
|
return encrypted + checksum
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue