Interface ISymbolInformation

All Known Implementing Classes:
SymbolInformation

@Ser public interface ISymbolInformation
Generic representation of a code symbol information. Method results are all optional; methods may return 0 or null if the data is irrelevant to the loader type they are part of.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    the symbol address is absolute
    static final int
    the symbol represent an object that is exported (publicly exposed) by the code unit
    static final int
    this flag may be used with FUNCTION symbols that have a non-zero symbol size: it serves to indicate that the routine code is a contiguous list of instructions (no inner data or undefined bytes, no loose basic blocks)
    static final int
    the symbol represent an object that is imported by the code unit
    static final int
    metadata symbols for linker or compiler, whose name is not useful
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Get the symbol flags.
    long
    Get the symbol identifier.
    Get the symbol name.
    int
    Retrieve the optional processor mode associated to this symbol, if the address points to code.
    long
    Get the base-relative address of the description of the symbol.
     
    long
    Get the base-relative address of the symbol.
    long
    Get the size of the symbol.
    Get the symbol type.
  • Field Details

    • FLAG_IMPORTED

      static final int FLAG_IMPORTED
      the symbol represent an object that is imported by the code unit
      See Also:
    • FLAG_EXPORTED

      static final int FLAG_EXPORTED
      the symbol represent an object that is exported (publicly exposed) by the code unit
      See Also:
    • FLAG_FUNCTION_CODE_CONTIGUOUS

      static final int FLAG_FUNCTION_CODE_CONTIGUOUS
      this flag may be used with FUNCTION symbols that have a non-zero symbol size: it serves to indicate that the routine code is a contiguous list of instructions (no inner data or undefined bytes, no loose basic blocks)
      See Also:
    • FLAG_ABSOLUTE

      static final int FLAG_ABSOLUTE
      the symbol address is absolute
      See Also:
    • FLAG_METADATA

      static final int FLAG_METADATA
      metadata symbols for linker or compiler, whose name is not useful
      See Also:
  • Method Details

    • getType

      SymbolType getType()
      Get the symbol type.
      Returns:
      the type
    • getFlags

      int getFlags()
      Get the symbol flags. A valid combination of FLAG_xxx.
      Returns:
      the flags
    • getIdentifier

      long getIdentifier()
      Get the symbol identifier. Optional.
      Returns:
      the symbol identifier
    • getName

      String getName()
      Get the symbol name.

      Special syntax for imported functions: the function name may be prefixed by the library name that contains it. A bang character is used as a separator. Example: kernel32.dll!Sleep
      Note: the method name may be mangled; it may be fully qualified. The library name is optional; its extension is optional (eg, .dll, .so); it may be a full path.

      Returns:
      the symbol name
    • getRelativeAddress

      long getRelativeAddress()
      Get the base-relative address of the description of the symbol. Informative and optional.
      Returns:
      the base-relative address of the symbol description
    • getSymbolRelativeAddress

      long getSymbolRelativeAddress()
      Get the base-relative address of the symbol.
      Returns:
      the symbol RVA
    • getSymbolSize

      long getSymbolSize()
      Get the size of the symbol. May not be known.
      Returns:
      the symbol size
    • getSymbolDataTypeInformation

      String getSymbolDataTypeInformation()
      Returns:
      may be null
    • getProcessorMode

      int getProcessorMode()
      Retrieve the optional processor mode associated to this symbol, if the address points to code. This value is optional, implementations may return 0.
      Returns:
      the optional processor mode (refer to IProcessor for standard values)