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
Represents a dysymtab_command structure.
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionGets the name of this load commandint
Returns the byte index from the start of the file to the external relocation table.int
Returns the number of entries in the external relocation table.int
Returns the total number of external symbols.int
Returns the index of the first external symbol.int[]
int
Returns the byte index from the start of the file to the indirect symbol table.int
Returns the number of entries in the indirect symbol table.int
Gets the file offset of this load command's "linker data".int
Gets the file size of this load command's "linker data".int
Returns the byte index from the start of the file to the local relocation table.int
Returns the number of entries in the local relocation table.int
Returns the total number of local symbols.int
Returns the index of the first local symbol.int
Returns the byte index from the start of the file to the module table.int
Returns the number of entries in the module table.int
Returns the byte index from the start of the file to the external reference table.int
Returns the number of entries in the external reference table.int
Returns the byte index from the start of the file to the table of contents (TOC).int
Returns the number of entries in the table of contents.int
Returns the total number of undefined symbols.int
Returns the index of the first undefined symbol.void
markup
(Program program, MachHeader header, String source, TaskMonitor monitor, MessageLog log) Marks up thisLoadCommand
data with data structures and comments.void
markupRawBinary
(MachHeader header, FlatProgramAPI api, Address baseAddress, ProgramModule parentModule, TaskMonitor monitor, MessageLog log) Marks-up thisLoadCommand
with data structures and comments.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, createPlateComment, fileOffsetToAddress, getCommandSize, getCommandType, getContextualName, getStartIndex, markupPlateComment, setEndian, updateMonitor
-
Method Details
-
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
-
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
-
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
-
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
-
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
-
getLinkerDataOffset
public int getLinkerDataOffset()Description copied from class:LoadCommand
Gets the file offset of this load command's "linker data". Not all load commands with data will have linker data. Linker data typically resides in the __LINKEDIT segment.- Overrides:
getLinkerDataOffset
in classLoadCommand
- Returns:
- The file offset of this load command's "linker data", or 0 if it has no linker data
-
getLinkerDataSize
public int getLinkerDataSize()Description copied from class:LoadCommand
Gets the file size of this load command's "linker data". Not all load commands with data will have linker data. Linker data typically resides in the __LINKEDIT segment.- Overrides:
getLinkerDataSize
in classLoadCommand
- Returns:
- The file size of this load command's "linker data", or 0 if it has no linker data
-
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.
- 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:
-
getCommandName
Description copied from class:LoadCommand
Gets the name of this load command- Specified by:
getCommandName
in classLoadCommand
- Returns:
- The name of this load command
-
markup
public void markup(Program program, MachHeader header, String source, TaskMonitor monitor, MessageLog log) throws CancelledException Description copied from class:LoadCommand
Marks up thisLoadCommand
data with data structures and comments. Assumes the program was imported as a Mach-O.- Overrides:
markup
in classLoadCommand
- Parameters:
program
- TheProgram
to mark upheader
- The Mach-O headersource
- A name that represents where the header came from (could be null)monitor
- A cancellable task monitorlog
- The log- Throws:
CancelledException
- if the user cancelled the operation
-
markupRawBinary
public void markupRawBinary(MachHeader header, FlatProgramAPI api, Address baseAddress, ProgramModule parentModule, TaskMonitor monitor, MessageLog log) Description copied from class:LoadCommand
Marks-up thisLoadCommand
with data structures and comments. Assumes the program was imported as a Raw Binary.- Overrides:
markupRawBinary
in classLoadCommand
- Parameters:
header
- The Mach-O headerapi
- AFlatProgramAPI
baseAddress
- The base address of the programparentModule
- The parentmodule
to create fragmentsmonitor
- A cancellable task monitorlog
- The log- See Also:
-