Package ghidra.app.util.bin.format.elf
Class ElfStringTable
- java.lang.Object
-
- ghidra.app.util.bin.format.elf.ElfStringTable
-
- All Implemented Interfaces:
ElfFileSection
,StructConverter
public class ElfStringTable extends java.lang.Object implements ElfFileSection
-
-
Constructor Summary
Constructors Constructor Description ElfStringTable()
DO NOT USE THIS CONSTRUCTOR, USE create*(GenericFactory ...) FACTORY METHODS INSTEAD.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ElfStringTable
createElfStringTable(FactoryBundledWithBinaryReader reader, ElfHeader header, ElfSectionHeader stringTableSection, long fileOffset, long addrOffset, long length)
Create and parse an Elf string tablelong
getAddressOffset()
Preferred memory address offset where data should be loaded.int
getEntrySize()
Size of each structured entry in byteslong
getFileOffset()
Offset within file where section bytes are specifiedlong
getLength()
Length of file section in bytesElfSectionHeader
getTableSectionHeader()
Get section header which corresponds to this table, or null if only associated with a dynamic table entryjava.lang.String
readString(BinaryReader reader, long stringOffset)
Read string from table at specified relative table offsetDataType
toDataType()
Returns a structure datatype representing the contents of the implementor of this interface.
-
-
-
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
-header
- elf headerstringTableSection
- string table section header or null if associated with a dynamic table entryfileOffset
- symbol table file offsetaddrOffset
- memory address of symbol table (should already be adjusted for prelink)length
- length of symbol table in bytes of -1 if unknownentrySize
- size of each symbol entry in bytessectionType
- symbol table section type (SHT_DYNSYM, SHT_SYMTAB, or -1 if not section-based)stringTable
- string table to be associated with symbol table- 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 interfaceElfFileSection
- 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 interfaceElfFileSection
- 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 interfaceElfFileSection
- 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 interfaceElfFileSection
- 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 interfaceStructConverter
- Returns:
- returns a structure datatype representing the implementor of this interface
- Throws:
DuplicateNameException
- when a datatype of the same name already existsjava.io.IOException
- See Also:
StructureDataType
-
-