def parse(readDataInstance): elf64_ehdr = Elf64_Ehdr() elf64_ehdr.e_ident = elfdatatypes.Array.parse( elfutils.ReadData(readDataInstance.read(16)), elfdatatypes.TYPE_BYTE, 16) elf64_ehdr.e_type = elfdatatypes.Elf64_Half( readDataInstance.readElf64Half()) elf64_ehdr.e_machine = elfdatatypes.Elf64_Half( readDataInstance.readElf64Half()) elf64_ehdr.e_version = elfdatatypes.Elf64_Word( readDataInstance.readElf64Word()) elf64_ehdr.e_entry = elfdatatypes.Elf64_Addr( readDataInstance.readElf64Addr()) elf64_ehdr.e_phoff = elfdatatypes.Elf64_Off( readDataInstance.readElf64Off()) elf64_ehdr.e_shoff = elfdatatypes.Elf64_Off( readDataInstance.readElf64Off()) elf64_ehdr.e_flags = elfdatatypes.Elf64_Word( readDataInstance.readElf64Word()) elf64_ehdr.e_ehsize = elfdatatypes.Elf64_Half( readDataInstance.readElf64Half()) elf64_ehdr.e_phentsize = elfdatatypes.Elf64_Half( readDataInstance.readElf64Half()) elf64_ehdr.e_phnum = elfdatatypes.Elf64_Half( readDataInstance.readElf64Half()) elf64_ehdr.e_shentsize = elfdatatypes.Elf64_Half( readDataInstance.readElf64Half()) elf64_ehdr.e_shnum = elfdatatypes.Elf64_Half( readDataInstance.readElf64Half()) elf64_ehdr.e_shstrndx = elfdatatypes.Elf64_Half( readDataInstance.readElf64Half()) return elf64_ehdr
def __init__(self, shouldPack=True): BaseStructClass.__init__(self, shouldPack) self.p_type = elfdatatypes.Elf64_Word() self.p_flags = elfdatatypes.Elf64_Word() self.p_offset = elfdatatypes.Elf64_Off() self.p_vaddr = elfdatatypes.Elf64_Addr() self.p_paddr = elfdatatypes.Elf64_Addr() self.p_filesz = elfdatatypes.Elf64_Xword() self.p_memsz = elfdatatypes.Elf64_Xword() self.p_align = elfdatatypes.Elf64_Xword() self.segmentRawData = None # this attribute holds program header + data self._fields = ["p_type", "p_flags", "p_offset", "p_vaddr", "p_paddr", "p_filesz",\ "p_memsz", "p_align"]
def __init__(self, shouldPack=True): BaseStructClass.__init__(self, shouldPack) self.sh_name = elfdatatypes.Elf64_Word() self.sh_type = elfdatatypes.Elf64_Word() self.sh_flags = elfdatatypes.Elf64_Xword() self.sh_addr = elfdatatypes.Elf64_Addr() self.sh_offset = elfdatatypes.Elf64_Off() self.sh_size = elfdatatypes.Elf64_Xword() self.sh_link = elfdatatypes.Elf64_Word() self.sh_info = elfdatatypes.Elf64_Word() self.sh_addralign = elfdatatypes.Elf64_Xword() self.sh_entsize = elfdatatypes.Elf64_Xword() self.sectionRawData = None self.sectionName = None self._fields = ["sh_name", "sh_type", "sh_flags", "sh_addr", "sh_offset", "sh_size", "sh_link",\ "sh_info", "sh_addralign", "sh_entsize"]
def parse(readDataInstance): elf64_Phdr = Elf64_Phdr() elf64_Phdr.p_type = elfdatatypes.Elf64_Word( readDataInstance.readElf64Word()) elf64_Phdr.p_flags = elfdatatypes.Elf64_Word( readDataInstance.readElf64Word()) elf64_Phdr.p_offset = elfdatatypes.Elf64_Off( readDataInstance.readElf64Off()) elf64_Phdr.p_vaddr = elfdatatypes.Elf64_Addr( readDataInstance.readElf64Addr()) elf64_Phdr.p_paddr = elfdatatypes.Elf64_Addr( readDataInstance.readElf64Addr()) elf64_Phdr.p_filesz = elfdatatypes.Elf64_Xword( readDataInstance.readElf64Xword()) elf64_Phdr.p_memsz = elfdatatypes.Elf64_Xword( readDataInstance.readElf64Xword()) elf64_Phdr.p_align = elfdatatypes.Elf64_Xword( readDataInstance.readElf64Xword()) return elf64_Phdr
def __init__(self, shouldPack=True): BaseStructClass.__init__(self, shouldPack) self.e_ident = elfdatatypes.Array(elfdatatypes.TYPE_BYTE) self.e_type = elfdatatypes.Elf64_Half() self.e_machine = elfdatatypes.Elf64_Half() self.e_version = elfdatatypes.Elf64_Word() self.e_entry = elfdatatypes.Elf64_Addr() self.e_phoff = elfdatatypes.Elf64_Off() self.e_shoff = elfdatatypes.Elf64_Off() self.e_flags = elfdatatypes.Elf64_Word() self.e_ehsize = elfdatatypes.Elf64_Half() self.e_phentsize = elfdatatypes.Elf64_Half() self.e_phnum = elfdatatypes.Elf64_Half() self.e_shentsize = elfdatatypes.Elf64_Half() self.e_shnum = elfdatatypes.Elf64_Half() self.e_shstrndx = elfdatatypes.Elf64_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): elf64_sym = Elf64_Sym() elf64_sym.st_name = elfdatatypes.Elf64_Word( readDataInstance.readElf64Word()) elf64_sym.st_info = elfdatatypes.BYTE(readDataInstance.readByte()) elf64_sym.st_other = elfdatatypes.BYTE(readDataInstance.readByte()) elf64_sym.st_shndx = elfdatatypes.Elf64_Half( readDataInstance.readElf64Half()) elf64_sym.st_value = elfdatatypes.Elf64_Addr( readDataInstance.readElf64Addr()) elf64_sym.st_size = elfdatatypes.Elf64_Xword( readDataInstance.readElf64Xword()) return elf64_sym
def __init__(self, shouldPack=True): BaseStructClass.__init__(self, shouldPack) self.st_name = elfdatatypes.Elf64_Word() self.st_info = elfdatatypes.BYTE() self.st_other = elfdatatypes.BYTE() self.st_shndx = elfdatatypes.Elf64_Half() self.st_value = elfdatatypes.Elf64_Addr() self.st_size = elfdatatypes.Elf64_Xword() self._fields = [ "st_name", "st_value", "st_size", "st_info", "st_other", "st_shndx" ]
def parse(readDataInstance): elf64_shdr = Elf64_Shdr() elf64_shdr.sh_name = elfdatatypes.Elf64_Word( readDataInstance.readElf64Word()) elf64_shdr.sh_type = elfdatatypes.Elf64_Word( readDataInstance.readElf64Word()) elf64_shdr.sh_flags = elfdatatypes.Elf64_Xword( readDataInstance.readElf64Xword()) elf64_shdr.sh_addr = elfdatatypes.Elf64_Addr( readDataInstance.readElf64Addr()) elf64_shdr.sh_offset = elfdatatypes.Elf64_Off( readDataInstance.readElf64Off()) elf64_shdr.sh_size = elfdatatypes.Elf64_Xword( readDataInstance.readElf64Xword()) elf64_shdr.sh_link = elfdatatypes.Elf64_Word( readDataInstance.readElf64Word()) elf64_shdr.sh_info = elfdatatypes.Elf64_Word( readDataInstance.readElf64Word()) elf64_shdr.sh_addralign = elfdatatypes.Elf64_Xword( readDataInstance.readElf64Xword()) elf64_shdr.sh_entsize = elfdatatypes.Elf64_Xword( readDataInstance.readElf64Xword()) return elf64_shdr