import struct, sys, os, binascii class bitsReader(object): def __init__(self, ab): self.bits = int(binascii.hexlify(ab[::-1]), 16) self.o = 0 def get(self, n=1): self.bits, v = divmod(self.bits, 1< %d, be patient..." % (len(ab), cbUnp)) br = bitsReader(ab[4:]) r = bytearray() while (br.bits): flag = br.get(1) if flag: ncp = br.get(4) if ncp < 3: ncp += 16 offs = br.get(14) ocp = len(r) - offs for i in range(ncp): r.append(r[ocp+i]) else: r.append(br.get(8)) if len(r) != cbUnp: print("? Got %d instead of %d..." % (len(r), cbUnp)) else: print("+ Unpacked OK") return bytes(r) class Elf64_Shdr(object): fmt = struct.Struct("