Class DynamicSymbolTableCommand
- java.lang.Object
-
- ghidra.app.util.bin.format.macho.commands.LoadCommand
-
- ghidra.app.util.bin.format.macho.commands.DynamicSymbolTableCommand
-
- All Implemented Interfaces:
StructConverter
public class DynamicSymbolTableCommand extends LoadCommand
Represents a dysymtab_command structure.- See Also:
- mach-o/loader.h
-
-
Constructor Summary
Constructors Constructor Description DynamicSymbolTableCommand()
DO NOT USE THIS CONSTRUCTOR, USE create*(GenericFactory ...) FACTORY METHODS INSTEAD.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getCommandName()
Returns the name of this command.int
getExternalRelocationOffset()
Returns the byte index from the start of the file to the external relocation table.java.util.List<RelocationInfo>
getExternalRelocations()
int
getExternalRelocationSize()
Returns the number of entries in the external relocation table.int
getExternalSymbolCount()
Returns the total number of external symbols.int
getExternalSymbolIndex()
Returns the index of the first external symbol.int[]
getIndirectSymbols()
int
getIndirectSymbolTableOffset()
Returns the byte index from the start of the file to the indirect symbol table.int
getIndirectSymbolTableSize()
Returns the number of entries in the indirect symbol table.int
getLocalRelocationOffset()
Returns the byte index from the start of the file to the local relocation table.java.util.List<RelocationInfo>
getLocalRelocations()
int
getLocalRelocationSize()
Returns the number of entries in the local relocation table.int
getLocalSymbolCount()
Returns the total number of local symbols.int
getLocalSymbolIndex()
Returns the index of the first local symbol.java.util.List<DynamicLibraryModule>
getModuleList()
int
getModuleTableOffset()
Returns the byte index from the start of the file to the module table.int
getModuleTableSize()
Returns the number of entries in the module table.java.util.List<DynamicLibraryReference>
getReferencedSymbolList()
int
getReferencedSymbolTableOffset()
Returns the byte index from the start of the file to the external reference table.int
getReferencedSymbolTableSize()
Returns the number of entries in the external reference table.java.util.List<TableOfContents>
getTableOfContentsList()
int
getTableOfContentsOffset()
Returns the byte index from the start of the file to the table of contents (TOC).int
getTableOfContentsSize()
Returns the number of entries in the table of contents.int
getUndefinedSymbolCount()
Returns the total number of undefined symbols.int
getUndefinedSymbolIndex()
Returns the index of the first undefined symbol.void
markup(MachHeader header, FlatProgramAPI api, Address baseAddress, boolean isBinary, ProgramModule parentModule, TaskMonitor monitor, MessageLog log)
Mark-up the program with the data structures for this load command.DataType
toDataType()
Returns a structure datatype representing the contents of the implementor of this interface.-
Methods inherited from class ghidra.app.util.bin.format.macho.commands.LoadCommand
createFragment, getCommandSize, getCommandType, getStartIndex, initLoadCommand, updateMonitor
-
-
-
-
Method Detail
-
getLocalSymbolIndex
public int getLocalSymbolIndex()
Returns the index of the first local symbol.- Returns:
- the index of the first local symbol
-
getLocalSymbolCount
public int getLocalSymbolCount()
Returns the total number of local symbols.- Returns:
- the total number of local symbols
-
getExternalSymbolIndex
public int getExternalSymbolIndex()
Returns the index of the first external symbol.- Returns:
- the index of the first external symbol
-
getExternalSymbolCount
public int getExternalSymbolCount()
Returns the total number of external symbols.- Returns:
- the total number of external symbols
-
getUndefinedSymbolIndex
public int getUndefinedSymbolIndex()
Returns the index of the first undefined symbol.- Returns:
- the index of the first undefined symbol
-
getUndefinedSymbolCount
public int getUndefinedSymbolCount()
Returns the total number of undefined symbols.- Returns:
- the total number of undefined symbols
-
getTableOfContentsOffset
public int getTableOfContentsOffset()
Returns the byte index from the start of the file to the table of contents (TOC).- Returns:
- the byte index of the TOC
-
getTableOfContentsSize
public int getTableOfContentsSize()
Returns the number of entries in the table of contents.- Returns:
- the number of entries in the table of contents
-
getTableOfContentsList
public java.util.List<TableOfContents> getTableOfContentsList()
-
getModuleTableOffset
public int getModuleTableOffset()
Returns the byte index from the start of the file to the module table.- Returns:
- the byte index of the module table
-
getModuleTableSize
public int getModuleTableSize()
Returns the number of entries in the module table.- Returns:
- the number of entries in the module table
-
getModuleList
public java.util.List<DynamicLibraryModule> getModuleList()
-
getReferencedSymbolTableOffset
public int getReferencedSymbolTableOffset()
Returns the byte index from the start of the file to the external reference table.- Returns:
- the byte index of the external reference table
-
getReferencedSymbolTableSize
public int getReferencedSymbolTableSize()
Returns the number of entries in the external reference table.- Returns:
- the number of entries in the external reference table
-
getReferencedSymbolList
public java.util.List<DynamicLibraryReference> getReferencedSymbolList()
-
getIndirectSymbolTableOffset
public int getIndirectSymbolTableOffset()
Returns the byte index from the start of the file to the indirect symbol table.- Returns:
- the byte index of the indirect symbol table
-
getIndirectSymbolTableSize
public int getIndirectSymbolTableSize()
Returns the number of entries in the indirect symbol table.- Returns:
- the number of entries in the indirect symbol table
-
getIndirectSymbols
public int[] getIndirectSymbols()
-
getExternalRelocationOffset
public int getExternalRelocationOffset()
Returns the byte index from the start of the file to the external relocation table.- Returns:
- the byte index of the external relocation table
-
getExternalRelocationSize
public int getExternalRelocationSize()
Returns the number of entries in the external relocation table.- Returns:
- the number of entries in the external relocation table
-
getExternalRelocations
public java.util.List<RelocationInfo> getExternalRelocations()
-
getLocalRelocationOffset
public int getLocalRelocationOffset()
Returns the byte index from the start of the file to the local relocation table.- Returns:
- the byte index of the local relocation table
-
getLocalRelocationSize
public int getLocalRelocationSize()
Returns the number of entries in the local relocation table.- Returns:
- the number of entries in the local relocation table
-
getLocalRelocations
public java.util.List<RelocationInfo> getLocalRelocations()
-
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.
- 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
-
getCommandName
public java.lang.String getCommandName()
Description copied from class:LoadCommand
Returns the name of this command.- Specified by:
getCommandName
in classLoadCommand
- Returns:
- the name of this command
-
markup
public void markup(MachHeader header, FlatProgramAPI api, Address baseAddress, boolean isBinary, ProgramModule parentModule, TaskMonitor monitor, MessageLog log)
Description copied from class:LoadCommand
Mark-up the program with the data structures for this load command.- Specified by:
markup
in classLoadCommand
- Parameters:
header
- the mach headerapi
- the flat program apibaseAddress
- the base address to apply the mark-upisBinary
- true if mach-o was loaded as binaryparentModule
- parent module to create fragmentsmonitor
- the task monitorlog
- the message logS
-
-