Package ghidra.app.util.bin.format.som
Class SomDynamicLoaderHeader
java.lang.Object
ghidra.app.util.bin.format.som.SomDynamicLoaderHeader
- All Implemented Interfaces:
StructConverter
Represents a SOM
dl_header structure- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionSomDynamicLoaderHeader(Program program, Address textAddr, Address dataAddr) Creates a newSomDynamicLoaderHeader -
Method Summary
Modifier and TypeMethodDescriptionReturns theAddressof the "data" space.getDlt()Returns theListofDLT entries.intReturns the number of entries in the DLT.intReturns the offset in the $DATA$ space of the Data Linkage Table.intReturns the number of dynamic relocation records generated.intReturns the text-relative offset of the dynamic relocation records.Returns theListofdynamic relocation entries.intReturns the index into the import table if the elab_ref bit in the flags field is set.intReturns the index into the shared library string table.Returns theListofexport entry extensions.intReturns the text-relative offset of the export extension table.intReturns the number of export entries.intReturns the text-relative offset of the export list.Returns theListofexport entries.intReturns the text-relative offset of fastbind info.shortgetFlags()Returns the flags.intReturns the text-relative offset of the hash table.intReturns the number of slots used in the hash table.intReturns the version of the DL header.shortReturns the highest version number of any symbol defined in the shared library or in the set of highwater marks of the shared libraries in the shared library list.intReturns the number of entries in the import list.intReturns the text-relative offset of the import list.Returns theListofimport entries.intReturns the index into the import table if the init_ref bit in the flags field is set and the initializer_count field is set 0.intReturns the number of initializers declared.intReturns the data-relative offset of the Linkage Table pointer.intReturns the number of modules in the module table.intReturns the text-relative offset of the module table.Returns theListofmodule entries.getPlt()Returns theListofPLT entries.intReturns the number of entries in the PLT.intReturns the offset in the $DATA$ space of the Procedure Linkage Table.intReturns the number of entries in the shared library list.intReturns the text-relative offset of the shared library list.Returns theListofshared library entries.intReturns the text-relative offset of the string table.intReturns the length of the string table.intReturns the size of the TSD area.Returns theAddressof the "text" space.voidmarkup(Program program, TaskMonitor monitor) Marks up this headerReturns a structure datatype representing the contents of the implementor of this interface.
-
Field Details
-
SIZE
public static final int SIZEThe size in bytes of aSomDynamicLoaderHeader- See Also:
-
-
Constructor Details
-
SomDynamicLoaderHeader
public SomDynamicLoaderHeader(Program program, Address textAddr, Address dataAddr) throws IOException Creates a newSomDynamicLoaderHeader- Parameters:
program- TheProgramtextAddr- TheAddressof the "text" spacedataAddr- TheAddressof the "data" space- Throws:
IOException- if there was an IO-related error
-
-
Method Details
-
getHdrVersion
public int getHdrVersion()Returns the version of the DL header.- Returns:
- the version of the DL header
-
getLtptrValue
public int getLtptrValue()Returns the data-relative offset of the Linkage Table pointer.- Returns:
- the data-relative offset of the Linkage Table pointer
-
getShlibListLoc
public int getShlibListLoc()Returns the text-relative offset of the shared library list.- Returns:
- the text-relative offset of the shared library list
-
getShlibListCount
public int getShlibListCount()Returns the number of entries in the shared library list.- Returns:
- the number of entries in the shared library list
-
getImportListLoc
public int getImportListLoc()Returns the text-relative offset of the import list.- Returns:
- the text-relative offset of the import list
-
getImportListCount
public int getImportListCount()Returns the number of entries in the import list.- Returns:
- the number of entries in the import list
-
getHashTableLoc
public int getHashTableLoc()Returns the text-relative offset of the hash table.- Returns:
- the text-relative offset of the hash table
-
getHashTableSize
public int getHashTableSize()Returns the number of slots used in the hash table.- Returns:
- the number of slots used in the hash table
-
getExportListLoc
public int getExportListLoc()Returns the text-relative offset of the export list.- Returns:
- the text-relative offset of the export list
-
getExportListCount
public int getExportListCount()Returns the number of export entries.- Returns:
- the number of export entries
-
getStringTableLoc
public int getStringTableLoc()Returns the text-relative offset of the string table.- Returns:
- the text-relative offset of the string table
-
getStringTableSize
public int getStringTableSize()Returns the length of the string table.- Returns:
- the length of the string table
-
getDrelocLoc
public int getDrelocLoc()Returns the text-relative offset of the dynamic relocation records.- Returns:
- the text-relative offset of the dynamic relocation records
-
getDrelocCount
public int getDrelocCount()Returns the number of dynamic relocation records generated.- Returns:
- the number of dynamic relocation records generated
-
getDltLoc
public int getDltLoc()Returns the offset in the $DATA$ space of the Data Linkage Table.- Returns:
- the offset in the $DATA$ space of the Data Linkage Table
-
getPltLoc
public int getPltLoc()Returns the offset in the $DATA$ space of the Procedure Linkage Table.- Returns:
- the offset in the $DATA$ space of the Procedure Linkage Table
-
getDltCount
public int getDltCount()Returns the number of entries in the DLT.- Returns:
- the number of entries in the DLT
-
getPltCount
public int getPltCount()Returns the number of entries in the PLT.- Returns:
- the number of entries in the PLT
-
getHighwaterMark
public short getHighwaterMark()Returns the highest version number of any symbol defined in the shared library or in the set of highwater marks of the shared libraries in the shared library list.- Returns:
- the highest version number of any symbol defined in the shared library or in the set of highwater marks of the shared libraries in the shared library list
-
getFlags
public short getFlags()Returns the flags.- Returns:
- the flags
-
getExportExtLoc
public int getExportExtLoc()Returns the text-relative offset of the export extension table.- Returns:
- the text-relative offset of the export extension table
-
getModuleLoc
public int getModuleLoc()Returns the text-relative offset of the module table.- Returns:
- the text-relative offset of the module table
-
getModuleCount
public int getModuleCount()Returns the number of modules in the module table.- Returns:
- the number of modules in the module table
-
getElaborator
public int getElaborator()Returns the index into the import table if the elab_ref bit in the flags field is set.- Returns:
- the index into the import table if the elab_ref bit in the flags field is set
-
getInitializer
public int getInitializer()Returns the index into the import table if the init_ref bit in the flags field is set and the initializer_count field is set 0.- Returns:
- the index into the import table if the init_ref bit in the flags field is set and the initializer_count field is set 0
-
getEmbeddedPath
public int getEmbeddedPath()Returns the index into the shared library string table.- Returns:
- the index into the shared library string table
-
getInitializerCount
public int getInitializerCount()Returns the number of initializers declared.- Returns:
- the number of initializers declared
-
getTdsize
public int getTdsize()Returns the size of the TSD area.- Returns:
- the size of the TSD area
-
getFastbindListLoc
public int getFastbindListLoc()Returns the text-relative offset of fastbind info.- Returns:
- the text-relative offset of fastbind info
-
getTextAddress
Returns theAddressof the "text" space.- Returns:
- the
Addressof the "text" space
-
getDataAddress
Returns theAddressof the "data" space.- Returns:
- the
Addressof the "data" space
-
getShlibs
Returns theListofshared library entries.- Returns:
- the
Listofshared library entries
-
getImports
Returns theListofimport entries.- Returns:
- the
Listofimport entries
-
getExports
Returns theListofexport entries.- Returns:
- the
Listofexport entries
-
getDynamicRelocations
Returns theListofdynamic relocation entries.- Returns:
- the
Listofdynamic relocation entries
-
getPlt
Returns theListofPLT entries.- Returns:
- the
ListofPLT entries
-
getDlt
Returns theListofDLT entries.- Returns:
- the
ListofDLT entries
-
getExportExtensions
Returns theListofexport entry extensions.- Returns:
- the
Listofexport entry extensions
-
getModules
Returns theListofmodule entries.- Returns:
- the
Listofmodule entries
-
markup
Marks up this header -
toDataType
Description copied from interface:StructConverterReturns 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:
toDataTypein 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:
-