예제 #1
0
    def loadStrTab(self):
        """ Load a string table """

        if self.size <= 0:
            return

        format = self.prop.endian + ('s' * self.size)

        Page.load(self)

        self.strtab = list(unpack_from(format, self.data))
        if self.strtab[len(self.strtab) - 1] != '\0':
            self.strtab.append('\0')
예제 #2
0
    def loadStrTab(self):
        """ Load a string table """

        if self.size <= 0:
            return

        format = self.prop.endian+('s'*self.size)

        Page.load(self)

        self.strtab = list(unpack_from(format, self.data))
        if self.strtab[len(self.strtab)-1] != '\0':
            self.strtab.append('\0')
예제 #3
0
    def load(self, offset=None, filemap=None):
        """ Load proper elements depending on section's type """

        # Call specific loading func, depending on sh_type
        if self.header.sh_type == shdr_type['SHT_SYMTAB']:
            self.loadSymTab()
        elif self.header.sh_type == shdr_type['SHT_DYNSYM']:
            self.loadSymTab()
        elif self.header.sh_type == shdr_type['SHT_STRTAB']:
            self.loadStrTab()
        elif self.header.sh_type == shdr_type['SHT_REL']:
            self.loadRelocs()
        elif self.header.sh_type == shdr_type['SHT_RELA']:
            self.loadRelocs(True)
        elif self.header.sh_type == shdr_type['SHT_DYNAMIC']:
            self.loadDynamic()
        elif self.header.sh_type == shdr_type['SHT_NOTE']:
            self.loadNote()
        else:
            Page.load(self)
예제 #4
0
    def load(self, offset=None, filemap=None):
        """ Load proper elements depending on section's type """

        # Call specific loading func, depending on sh_type
        if self.header.sh_type == shdr_type['SHT_SYMTAB']:
            self.loadSymTab()
        elif self.header.sh_type == shdr_type['SHT_DYNSYM']:
            self.loadSymTab()
        elif self.header.sh_type == shdr_type['SHT_STRTAB']:
             self.loadStrTab()
        elif self.header.sh_type == shdr_type['SHT_REL']:
            self.loadRelocs()
        elif self.header.sh_type == shdr_type['SHT_RELA']:
            self.loadRelocs(True)
        elif self.header.sh_type == shdr_type['SHT_DYNAMIC']:
            self.loadDynamic()
        elif self.header.sh_type == shdr_type['SHT_NOTE']:
            self.loadNote()
        else:
            Page.load(self)
예제 #5
0
    def load(self, offset=None, filemap=None):
        Page.load(self, offset, filemap)

        self.name = str(self.data[:self.header.n_namesz])
        self.desc = str(self.data[self.header.n_namesz:])
예제 #6
0
    def load(self, offset=None, filemap=None):
        Page.load(self, offset, filemap)

        self.name = str(self.data[:self.header.n_namesz])
        self.desc = str(self.data[self.header.n_namesz:])