Package ghidra.app.util.bin.format.elf
Class ElfStringTable
java.lang.Object
ghidra.app.util.bin.format.elf.ElfStringTable
- All Implemented Interfaces:
ElfFileSection
,StructConverter
-
Field Summary
-
Constructor Summary
ConstructorDescriptionElfStringTable
(ElfHeader header, ElfSectionHeader stringTableSection, long fileOffset, long addrOffset, long length) Construct and parse an Elf string table -
Method Summary
Modifier and TypeMethodDescriptionlong
Preferred memory address offset where data should be loaded.int
Size of each structured entry in byteslong
Offset within file where section bytes are specifiedlong
Length of file section in bytesGet section header which corresponds to this table, or null if only associated with a dynamic table entryreadString
(BinaryReader reader, long stringOffset) Read string from table at specified relative table offsetReturns a structure datatype representing the contents of the implementor of this interface.
-
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 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 unknown
-
-
Method Details
-
readString
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 interfaceElfFileSection
- Returns:
- default memory address offset where data should be loaded
-
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
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 existsIOException
- if an IO-related error occurs- See Also:
-