Class ElfStringTable

    • Constructor Detail

      • ElfStringTable

        public ElfStringTable()
        DO NOT USE THIS CONSTRUCTOR, USE create*(GenericFactory ...) FACTORY METHODS INSTEAD.
    • Method Detail

      • createElfStringTable

        public static ElfStringTable createElfStringTable​(FactoryBundledWithBinaryReader reader,
                                                          ElfHeader header,
                                                          ElfSectionHeader stringTableSection,
                                                          long fileOffset,
                                                          long addrOffset,
                                                          long length)
                                                   throws java.io.IOException
        Create and parse an Elf string table
        Parameters:
        reader - the binary reader containing the elf string table
        header - elf header
        stringTableSection - string table section header or null if associated with a dynamic table entry
        fileOffset - symbol table file offset
        addrOffset - memory address of symbol table (should already be adjusted for prelink)
        length - length of symbol table in bytes of -1 if unknown
        Returns:
        Elf string table object
        Throws:
        java.io.IOException
      • readString

        public java.lang.String readString​(BinaryReader reader,
                                           long stringOffset)
        Read string from table at specified relative table offset
        Parameters:
        reader -
        stringOffset - table relative string offset
        Returns:
        string or null on error
      • getAddressOffset

        public long getAddressOffset()
        Description copied from interface: ElfFileSection
        Preferred memory address offset where data should be loaded. The returned offset will already have the prelink adjustment applied, although will not reflect any change in the image base.
        Specified by:
        getAddressOffset in interface ElfFileSection
        Returns:
        default memory address offset where data should be loaded
      • getTableSectionHeader

        public ElfSectionHeader getTableSectionHeader()
        Get section header which corresponds to this table, or null if only associated with a dynamic table entry
        Returns:
        string table section header or null
      • getFileOffset

        public long getFileOffset()
        Description copied from interface: ElfFileSection
        Offset within file where section bytes are specified
        Specified by:
        getFileOffset in interface ElfFileSection
        Returns:
        offset within file where section bytes are specified
      • getLength

        public long getLength()
        Description copied from interface: ElfFileSection
        Length of file section in bytes
        Specified by:
        getLength in interface ElfFileSection
        Returns:
        length of file section in bytes
      • getEntrySize

        public int getEntrySize()
        Description copied from interface: ElfFileSection
        Size of each structured entry in bytes
        Specified by:
        getEntrySize in interface ElfFileSection
        Returns:
        entry size or -1 if variable
      • toDataType

        public DataType toDataType()
                            throws DuplicateNameException,
                                   java.io.IOException
        Description copied from interface: StructConverter
        Returns a structure datatype representing the contents of the implementor of this interface.

        For example, given:

         class A {
             int foo;
             double bar;
         }
         

        The return value should be a structure data type with two data type components; an INT and a DOUBLE. The structure should contain field names and, if possible, field comments.

        Specified by:
        toDataType in interface StructConverter
        Returns:
        returns a structure datatype representing the implementor of this interface
        Throws:
        DuplicateNameException - when a datatype of the same name already exists
        java.io.IOException
        See Also:
        StructureDataType