Exemplo n.º 1
0
    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"]
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
    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"]
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
 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
Exemplo n.º 7
0
 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
Exemplo n.º 8
0
    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"
        ]
Exemplo n.º 9
0
    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"]
Exemplo n.º 10
0
    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"]
Exemplo n.º 11
0
 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