Class ElfStringTable

java.lang.Object
ghidra.app.util.bin.format.elf.ElfStringTable
All Implemented Interfaces:
ElfFileSection, StructConverter

public class ElfStringTable extends Object implements ElfFileSection
  • Constructor Details

    • ElfStringTable

      public ElfStringTable(ElfHeader header, ElfSectionHeader stringTableSection, long fileOffset, long addrOffset, long length)
      Construct and parse an Elf string table
      Parameters:
      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
  • Method Details

    • readString

      public String readString(BinaryReader reader, long stringOffset)
      Read string from table at specified relative table offset
      Parameters:
      reader - byte reader (position remains unchanged)
      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, 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
      IOException - if an IO-related error occurs
      See Also: