diff options
Diffstat (limited to 'build/linux/dump_signature.py')
-rwxr-xr-x | build/linux/dump_signature.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/build/linux/dump_signature.py b/build/linux/dump_signature.py index 779bf85..10bb2e0 100755 --- a/build/linux/dump_signature.py +++ b/build/linux/dump_signature.py @@ -8,6 +8,7 @@ # src/breakpad/linux/minidump_writer.cc@17081 import sys +import struct if len(sys.argv) != 2: sys.stderr.write("Error, no filename specified.\n") @@ -17,15 +18,13 @@ bin = open(sys.argv[1]) data = bin.read(4096) if len(data) != 4096: sys.stderr.write("Error, did not read first page of data.\n"); + sys.exit(1) bin.close() signature = [0] * 16 for i in range(0, 4096): signature[i % 16] ^= ord(data[i]) -out = '' -# Assume we're running on little endian -for i in [3, 2, 1, 0, 5, 4, 7, 6, 8, 9, 10, 11, 12, 13, 14, 15]: - out += '%02X' % signature[i] -out += '0' +out = ('%08x%04x%04x%02x%02x%02x%02x%02x%02x%02x%02x0' % + struct.unpack('I2H8B', struct.pack('16B', *signature))) sys.stdout.write(out) |