cam-reverse/scripts/dec.py

66 lines
2.8 KiB
Python
Raw Permalink Normal View History

2024-01-31 10:24:06 +01:00
import string
data = [
0xf1, 0xd0, 0x01, 0x18, 0xd1, 0x00, 0x00, 0x02, 0x11, 0x0a, 0x01, 0x60, 0x0c, 0x01, 0x00, 0x00,
0x4c, 0x31, 0x67, 0x4e, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x72, 0x6a, 0x78, 0x6f, 0x64, 0x75, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x72, 0x74, 0x71, 0x64, 0x73, 0x62, 0x73, 0x60,
0x71, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x31, 0x2f, 0x33, 0x34, 0x34, 0x2f, 0x33, 0x34,
0x34, 0x2f, 0x33, 0x34, 0x34, 0x01, 0x01, 0x01, 0x31, 0x2f, 0x31, 0x2f, 0x31, 0x2f, 0x31, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x31, 0x2f, 0x31, 0x2f, 0x31, 0x2f, 0x31, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x31, 0x2f, 0x31, 0x2f, 0x31, 0x2f, 0x31, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x31, 0x2f, 0x31, 0x2f, 0x31, 0x2f, 0x31, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
]
def dec(d):
ret = []
2024-01-31 10:58:44 +01:00
for b in d[0x14:]:
2024-01-31 10:24:06 +01:00
if b % 2:
ret.append(b - 1)
else:
ret.append(b + 1)
2024-01-31 10:58:44 +01:00
ret = d[:0x14] + ret[-4:] + ret[:-4]
2024-01-31 10:24:06 +01:00
return ret
def hexdump(dump):
2024-01-31 10:33:57 +01:00
print(" " * 10, end="")
2024-01-31 10:24:06 +01:00
for i in range(0, 0xF+1):
print(f"{i:2X}", end=" ")
2024-01-31 10:33:57 +01:00
print(" ", end="")
2024-01-31 10:24:06 +01:00
for i in range(0, 0xF+1):
print(f"{i:X}", end="")
print()
for i in range(0, len(dump), 0x10):
line = dump[i:i+0x10]
2024-01-31 10:33:57 +01:00
print(f"{i:08x}", end=" ")
2024-01-31 10:24:06 +01:00
for b in line:
print(f"{b:02x}", end=" ")
2024-01-31 10:33:57 +01:00
if len(line) < 16:
print(" " * (16 - len(line)), end="")
print(" ", end="")
2024-01-31 10:24:06 +01:00
for b in line:
rep = "."
2024-01-31 10:58:44 +01:00
if chr(b) in string.digits or chr(b) in string.ascii_letters:
2024-01-31 10:24:06 +01:00
rep = chr(b)
print(rep, end="")
print("")
2024-01-31 10:58:44 +01:00
_dec = dec(data)
hexdump(_dec[0x14:])
#print([hex(n) for n in _dec])
print("for test values, DEC")
print("".join([f"{n:02x}" for n in _dec]))
print("for test values, enc")
print("".join([f"{n:02x}" for n in data]))