diff options
Diffstat (limited to 'scripts/scriptchecksum.py')
-rw-r--r-- | scripts/scriptchecksum.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/scriptchecksum.py b/scripts/scriptchecksum.py new file mode 100644 index 0000000..d40a12d --- /dev/null +++ b/scripts/scriptchecksum.py @@ -0,0 +1,28 @@ +import struct +import sys + +out = open(sys.argv[2], 'w') +sum = 0x1121 +len = 0 +with open(sys.argv[1], 'rb') as f: + while True: + byte = f.read(1) + if not byte: + break + + sum ^= ord(byte) + for i in range(8): + if(sum & 1): + sum = (sum >> 1) ^ 0x8408 + else: + sum >>= 1 + len += 1 + sum = ~sum & 0xFFFF +f.closed + +out.write(struct.pack('<I', sum)) +out.write(struct.pack('<I', 0x0200001E)) +out.write(struct.pack('<I', 0x0200001E + len)) +with open(sys.argv[1], 'rb') as f: + out.write(f.read()) +f.closed
\ No newline at end of file |