|
|
1.1 root 1: #!/usr/bin/env python
2:
3: # This script is useful for taking the output of memdump() and
4: # converting it back into binary output. This can be useful, for
5: # example, when one wants to push that data into other tools like
6: # objdump or hexdump.
7: #
8: # (C) Copyright 2010 Kevin O'Connor <[email protected]>
9: #
10: # This file may be distributed under the terms of the GNU GPLv3 license.
11:
12: import sys
13: import struct
14:
15: def unhex(str):
16: return int(str, 16)
17:
18: def parseMem(filehdl):
19: mem = []
20: for line in filehdl:
21: parts = line.split(':')
22: if len(parts) < 2:
23: continue
24: try:
25: vaddr = unhex(parts[0])
26: parts = parts[1].split()
27: mem.extend([unhex(v) for v in parts])
28: except ValueError:
29: continue
30: return mem
31:
32: def printUsage():
33: sys.stderr.write("Usage:\n %s <file | ->\n"
34: % (sys.argv[0],))
35: sys.exit(1)
36:
37: def main():
38: if len(sys.argv) != 2:
39: printUsage()
40: filename = sys.argv[1]
41: if filename == '-':
42: filehdl = sys.stdin
43: else:
44: filehdl = open(filename, 'r')
45: mem = parseMem(filehdl)
46: for i in mem:
47: sys.stdout.write(struct.pack("<I", i))
48:
49: if __name__ == '__main__':
50: main()
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.