Package ghidra.app.util.bin.format.elf

# Class ElfDefaultGotPltMarkup

java.lang.Object
ghidra.app.util.bin.format.elf.ElfDefaultGotPltMarkup

public class ElfDefaultGotPltMarkup extends Object
`ElfDefaultGotPltMarkup` provides the legacy/default implementation of ELF GOT/PLT processing which handles a limited set of cases. It is intended that over time this default implementation be eliminated although it may form the basis of an abstract implementation for specific processor extensions.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ElfDefaultGotPltMarkup(ElfLoadHelper elfLoadHelper)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static boolean`
  `isValidPointer(Data pointerData)`
  Determine if pointerData refers to a valid memory address or symbol
  `void`
  `process(TaskMonitor monitor)`
  `void`
  `processLinkageTable(String pltName, Address minAddress, Address maxAddress, TaskMonitor monitor)`
  Perform disassembly and markup of specified external linkage table which consists of thunks to external functions.
  `static void`
  `setConstant(Data data)`
  Set specified data as constant if contained within a writable block.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ElfDefaultGotPltMarkup

    public ElfDefaultGotPltMarkup(ElfLoadHelper elfLoadHelper)

- ## Method Details

  - ### process

    public void process(TaskMonitor monitor) throws CancelledException
    Throws:
      `CancelledException`

  - ### processLinkageTable

    public void processLinkageTable(String pltName, Address minAddress, Address maxAddress, TaskMonitor monitor) throws CancelledException
    Perform disassembly and markup of specified external linkage table which consists of thunks to external functions. If symbols are defined within the linkage table, these will be transitioned to external functions.
    Parameters:
      `pltName` - name of PLT section for log messages
      `minAddress` - minimum address of linkage table
      `maxAddress` - maximum address of linkage table
      `monitor` - task monitor
    Throws:
      `CancelledException` - task cancelled

  - ### setConstant

    public static void setConstant(Data data)
    Set specified data as constant if contained within a writable block. It can be helpful to the decompiler results if constant pointers are marked as such (e.g., GOT entries)
    Parameters:
      `data` - program data

  - ### isValidPointer

    public static boolean isValidPointer(Data pointerData)
    Determine if pointerData refers to a valid memory address or symbol
    Parameters:
      `pointerData` - pointer data
    Returns:
      true if pointer data refers to valid memory address or symbol