diff options
author | Háčky <hatschky@gmail.com> | 2014-11-21 10:46:12 +0000 |
---|---|---|
committer | Háčky <hatschky@gmail.com> | 2014-11-21 10:46:12 +0000 |
commit | 2375d2c8db10447ae301176a2136bcad4bb42bb0 (patch) | |
tree | 00ca01a39e7bce0795a10b0c58f33e005ad4ef4c /scripts/scriptchecksum.py | |
parent | 92c6af6c354d58d96d9590efee955e449a8f94c3 (diff) |
Initial commit
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 |