Esempio n. 1
0
 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
Esempio n. 2
0
    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"]
Esempio n. 3
0
    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"]
Esempio n. 4
0
 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
Esempio n. 5
0
    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"]
Esempio n. 6
0
 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
Esempio n. 7
0
    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"
        ]
Esempio n. 8
0
 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