def __init__(self, shouldPack=True): BaseStructClass.__init__(self, shouldPack) self.p_type = elfdatatypes.Elf32_Word() self.p_offset = elfdatatypes.Elf32_Off() self.p_vaddr = elfdatatypes.Elf32_Addr() self.p_paddr = elfdatatypes.Elf32_Addr() self.p_filesz = elfdatatypes.Elf32_Word() self.p_memsz = elfdatatypes.Elf32_Word() self.p_flags = elfdatatypes.Elf32_Word() self.p_align = elfdatatypes.Elf32_Word() self.segmentRawData = None self._fields = ["p_type", "p_offset", "p_vaddr", "p_paddr", "p_filesz", "p_memsz",\ "p_flags", "p_align"]
def parse(readDataInstance): elf32_rel = Elf32_Rel() elf32_rel.r_offset = elfdatatypes.Elf32_Addr( readDataInstance.readElfAddr()) elf32_rel.r_info = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) return elf32_rel
def parse(readDataInstance): elf32_ehdr = Elf32_Ehdr() elf32_ehdr.e_ident = elfdatatypes.Array.parse( elfutils.ReadData(readDataInstance.read(16)), elfdatatypes.TYPE_BYTE, 16) elf32_ehdr.e_type = elfdatatypes.Elf32_Half( readDataInstance.readElfHalf()) elf32_ehdr.e_machine = elfdatatypes.Elf32_Half( readDataInstance.readElfHalf()) elf32_ehdr.e_version = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_ehdr.e_entry = elfdatatypes.Elf32_Addr( readDataInstance.readElfAddr()) elf32_ehdr.e_phoff = elfdatatypes.Elf32_Off( readDataInstance.readElfOff()) elf32_ehdr.e_shoff = elfdatatypes.Elf32_Off( readDataInstance.readElfOff()) elf32_ehdr.e_flags = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_ehdr.e_ehsize = elfdatatypes.Elf32_Half( readDataInstance.readElfHalf()) elf32_ehdr.e_phentsize = elfdatatypes.Elf32_Half( readDataInstance.readElfHalf()) elf32_ehdr.e_phnum = elfdatatypes.Elf32_Half( readDataInstance.readElfHalf()) elf32_ehdr.e_shentsize = elfdatatypes.Elf32_Half( readDataInstance.readElfHalf()) elf32_ehdr.e_shnum = elfdatatypes.Elf32_Half( readDataInstance.readElfHalf()) elf32_ehdr.e_shstrndx = elfdatatypes.Elf32_Half( readDataInstance.readElfHalf()) return elf32_ehdr
def __init__(self, shouldPack=True): BaseStructClass.__init__(self, shouldPack) self.r_offset = elfdatatypes.Elf32_Addr() self.r_info = elfdatatypes.Elf32_Word() self._fields = ["r_offset", "r_info"]
def parse(readDataInstance): elf32_rela = Elf32_Rela() elf32_rela.r_offset = elfdatatypes.Elf32_Addr( readDataInstance.readElfAddr()) elf32_rela.r_info = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_rela.r_addend = elfdatatypes.Elf32_Sword( readDataInstance.readElfSword()) return elf32_rela
def parse(readDataInstance): elf32_phdr = Elf32_Phdr() elf32_phdr.p_type = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_phdr.p_offset = elfdatatypes.Elf32_Off( readDataInstance.readElfOff()) elf32_phdr.p_vaddr = elfdatatypes.Elf32_Addr( readDataInstance.readElfAddr()) elf32_phdr.p_paddr = elfdatatypes.Elf32_Addr( readDataInstance.readElfAddr()) elf32_phdr.p_filesz = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_phdr.p_memsz = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_phdr.p_flags = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_phdr.p_align = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) return elf32_phdr
def parse(readDataInstance): elf32_sym = Elf32_Sym() elf32_sym.st_name = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_sym.st_value = elfdatatypes.Elf32_Addr( readDataInstance.readElfAddr()) elf32_sym.st_size = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_sym.st_info = elfdatatypes.Byte(readDataInstance.readByte()) elf32_sym.st_other = elfdatatypes.Byte(readDataInstance.readByte()) elf32_sym.st_shndx = elfdatatypes.Elf32_Half( readDataInstance.readElf32Half()) return elf32_sym
def __init__(self, shouldPack=True): BaseStructClass.__init__(self, shouldPack) self.st_name = elfdatatypes.Elf32_Word() self.st_value = elfdatatypes.Elf32_Addr() self.st_size = elfdatatypes.Elf32_Word() self.st_info = elfdatatypes.Byte() self.st_other = elfdatatypes.Byte() self.st_shndx = elfdatatypes.Elf32_Half() self._fields = [ "st_name", "st_value", "st_size", "st_info", "st_other", "st_shndx" ]
def __init__(self, shouldPack=True): BaseStructClass.__init__(self, shouldPack) self.sh_name = elfdatatypes.Elf32_Word() self.sh_type = elfdatatypes.Elf32_Word() self.sh_flags = elfdatatypes.Elf32_Word() self.sh_addr = elfdatatypes.Elf32_Addr() self.sh_offset = elfdatatypes.Elf32_Off() self.sh_size = elfdatatypes.Elf32_Word() self.sh_link = elfdatatypes.Elf32_Word() self.sh_info = elfdatatypes.Elf32_Word() self.sh_addralign = elfdatatypes.Elf32_Word() self.sh_entsize = elfdatatypes.Elf32_Word() self._fields = ["sh_name", "sh_type", "sh_flags", "sh_addr", "sh_offset", "sh_size", "sh_link",\ "sh_info", "sh_addralign", "sh_entsize"]
def __init__(self, shouldPack=True): BaseStructClass.__init__(self, shouldPack) self.e_ident = elfdatatypes.Array(elfdatatypes.TYPE_BYTE) self.e_type = elfdatatypes.Elf32_Half() self.e_machine = elfdatatypes.Elf32_Half() self.e_version = elfdatatypes.Elf32_Word() self.e_entry = elfdatatypes.Elf32_Addr() self.e_phoff = elfdatatypes.Elf32_Off() self.e_shoff = elfdatatypes.Elf32_Off() self.e_flags = elfdatatypes.Elf32_Word() self.e_ehsize = elfdatatypes.Elf32_Half() self.e_phentsize = elfdatatypes.Elf32_Half() self.e_phnum = elfdatatypes.Elf32_Half() self.e_shentsize = elfdatatypes.Elf32_Half() self.e_shnum = elfdatatypes.Elf32_Half() self.e_shstrndx = elfdatatypes.Elf32_Half() self._fields = ["e_ident", "e_type", "e_machine", "e_version", "e_entry", "e_phoff", "e_shoff",\ "e_flags", "e_ehsize", "e_phentsize", "e_phnum", "e_shentsize", "e_shnum", "e_shstrndx"]
def parse(readDataInstance): elf32_shdr = Elf32_Shdr() elf32_shdr.sh_name = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_shdr.sh_type = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_shdr.sh_flags = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_shdr.sh_addr = elfdatatypes.Elf32_Addr( readDataInstance.readElfAddr()) elf32_shdr.sh_offset = elfdatatypes.Elf32_Off( readDataInstance.readElfOff()) elf32_shdr.sh_size = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_shdr.sh_link = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_shdr.sh_info = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_shdr.sh_addralign = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) elf32_shdr.sh_entsize = elfdatatypes.Elf32_Word( readDataInstance.readElfWord()) return elf32_shdr