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.
  • 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

      public 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 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 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 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 List<RelocationInfo> 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 class LoadCommand
      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 class LoadCommand
      Returns:
      The file size of this load command's "linker data", or 0 if it has no linker data
    • toDataType

      public DataType toDataType() throws DuplicateNameException, 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 exists
      IOException - if an IO-related error occurs
      See Also:
    • getCommandName

      public String getCommandName()
      Description copied from class: LoadCommand
      Gets the name of this load command
      Specified by:
      getCommandName in class LoadCommand
      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 this LoadCommand data with data structures and comments. Assumes the program was imported as a Mach-O.
      Overrides:
      markup in class LoadCommand
      Parameters:
      program - The Program to mark up
      header - The Mach-O header
      source - A name that represents where the header came from (could be null)
      monitor - A cancellable task monitor
      log - 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 this LoadCommand with data structures and comments. Assumes the program was imported as a Raw Binary.
      Overrides:
      markupRawBinary in class LoadCommand
      Parameters:
      header - The Mach-O header
      api - A FlatProgramAPI
      baseAddress - The base address of the program
      parentModule - The parent module to create fragments
      monitor - A cancellable task monitor
      log - The log
      See Also: