import sys import struct from elfesteem import * import os import sys # example for extracting all pe ressources def extract_res(res, name_o = "", num = 0, lvl=-1): lvl +=1 if not res: return num for x in res.resentries: print "\t"*lvl, repr(x) num += 1 if x.name_s: name = name_o[:]+repr(x.name_s.value[::2]) else: name = name_o[:] if x.data: print "\t"*lvl, 'data', len(x.data.s) open('out/%.3d_%s.bin'%(num, name), 'w').write(str(x.data.s)) else: print "\t"*lvl, None if x.offsettosubdir: num = extract_res(x.subdir, name, num, lvl+1) return num try: os.stat('out') except: os.mkdir('out') fname = sys.argv[1] e = pe_init.PE(open(fname, 'rb').read()) res = e.DirRes.resdesc extract_res(res)