+class ProgramHeader:
+ def __init__(self, f):
+ self.p_type = f.read32()
+ if f.is64Bit:
+ self.p_flags = f.read32()
+ self.p_offset = f.readWord()
+ self.p_vaddr = f.readWord()
+ self.p_paddr = f.readWord()
+ self.p_filesz = f.readWord()
+ self.p_memsz = f.readWord()
+ if not f.is64Bit:
+ self.p_flags = f.read32()
+ self.p_align = f.readWord()
+
+ def dump(self):
+ print " (('p_type', %s)" % common_dump.HexDump(self.p_type)
+ print " ('p_flags', %s)" % common_dump.HexDump(self.p_flags)
+ print " ('p_offset', %s)" % common_dump.HexDump(self.p_offset)
+ print " ('p_vaddr', %s)" % common_dump.HexDump(self.p_vaddr)
+ print " ('p_paddr', %s)" % common_dump.HexDump(self.p_paddr)
+ print " ('p_filesz', %s)" % common_dump.HexDump(self.p_filesz)
+ print " ('p_memsz', %s)" % common_dump.HexDump(self.p_memsz)
+ print " ('p_align', %s)" % common_dump.HexDump(self.p_align)
+ print " ),"
+