Package ghidra.python

# Class PythonScript

java.lang.Object
ghidra.program.flatapi.FlatProgramAPI
ghidra.app.script.GhidraScript
ghidra.python.PythonScript

public class PythonScript extends GhidraScript
A Python version of a `GhidraScript`.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class ghidra.app.script.GhidraScript

  `GhidraScript.AnalysisMode`

- ## Field Summary

  ### Fields inherited from class ghidra.app.script.GhidraScript

  `currentAddress, currentHighlight, currentLocation, currentSelection, potentialPropertiesFileLocs, propertiesFileParams, sourceFile, state, writer`

  ### Fields inherited from class ghidra.program.flatapi.FlatProgramAPI

  `currentProgram, MAX_REFERENCES_TO, monitor`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PythonScript()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getCategory()`
  Returns the category for this script.
  `void`
  `run()`
  The run method is where the script specific code is placed.
  `void`
  `runScript(String scriptName, GhidraState scriptState)`
  Runs a script by name using the given state.

  ### Methods inherited from class ghidra.app.script.GhidraScript

  `analyzeAll, analyzeChanges, askAddress, askAddress, askBytes, askChoice, askChoices, askChoices, askDirectory, askDomainFile, askDouble, askFile, askInt, askLanguage, askLong, askPassword, askProgram, askProgram, askProjectFolder, askString, askString, askValues, askYesNo, cleanup, clearBackgroundColor, clearBackgroundColor, closeProgram, createHighlight, createProgram, createProgram, createProgram, createSelection, createTableChooserDialog, createTableChooserDialog, execute, getAnalysisOptionDefaultValue, getAnalysisOptionDefaultValues, getAnalysisOptionDescription, getAnalysisOptionDescriptions, getCodeUnitFormat, getCurrentAnalysisOptionsAndValues, getDefaultLanguage, getDemangled, getEOLCommentAsRendered, getGhidraVersion, getLanguage, getPlateCommentAsRendered, getPostCommentAsRendered, getPreCommentAsRendered, getProjectRootFolder, getRepeatableCommentAsRendered, getReusePreviousChoices, getScriptAnalysisMode, getScriptArgs, getScriptName, getSourceFile, getState, getUserName, goTo, goTo, goTo, importFile, importFileAsBinary, isAnalysisOptionDefaultValue, isRunningHeadless, loadPropertiesFile, loadVariablesFromState, openProgram, parseAddress, parseBoolean, parseBytes, parseChoice, parseChoices, parseChoices, parseDirectory, parseDomainFile, parseDouble, parseFile, parseInt, parseLanguageCompileSpecPair, parseLong, parseProjectFolder, popup, print, printerr, printf, println, println, promptToKeepChangesOnException, removeHighlight, removeSelection, resetAllAnalysisOptions, resetAnalysisOption, resetAnalysisOptions, runCommand, runCommand, runScript, runScript, runScript, runScriptPreserveMyState, set, setAnalysisOption, setAnalysisOptions, setAnonymousServerCredentials, setBackgroundColor, setBackgroundColor, setCurrentHighlight, setCurrentLocation, setCurrentSelection, setPotentialPropertiesFileLocations, setPropertiesFile, setPropertiesFileLocation, setReusePreviousChoices, setScriptArgs, setServerCredentials, setSourceFile, setToolStatusMessage, show, show, toHexString, toHexString, toHexString, toHexString, toString, updateStateFromVariables`

  ### Methods inherited from class ghidra.program.flatapi.FlatProgramAPI

  `addEntryPoint, addInstructionXref, analyze, clearListing, clearListing, clearListing, clearListing, createAddressSet, createAsciiString, createAsciiString, createBookmark, createByte, createChar, createClass, createData, createDouble, createDWord, createDwords, createEquate, createEquate, createExternalReference, createExternalReference, createExternalReference, createFloat, createFragment, createFragment, createFragment, createFragment, createFunction, createLabel, createLabel, createLabel, createMemoryBlock, createMemoryBlock, createMemoryReference, createMemoryReference, createNamespace, createQWord, createStackReference, createSymbol, createSymbol, createUnicodeString, createWord, disassemble, end, find, find, find, findBytes, findBytes, findBytes, findBytes, findBytes, findPascalStrings, findStrings, getAddressFactory, getBookmarks, getByte, getBytes, getCurrentProgram, getDataAfter, getDataAfter, getDataAt, getDataBefore, getDataBefore, getDataContaining, getDataTypes, getDouble, getEOLComment, getEquate, getEquate, getEquates, getFirstData, getFirstFunction, getFirstInstruction, getFirstInstruction, getFloat, getFragment, getFunction, getFunctionAfter, getFunctionAfter, getFunctionAt, getFunctionBefore, getFunctionBefore, getFunctionContaining, getGlobalFunctions, getInstructionAfter, getInstructionAfter, getInstructionAt, getInstructionBefore, getInstructionBefore, getInstructionContaining, getInt, getLastData, getLastFunction, getLastInstruction, getLong, getMemoryBlock, getMemoryBlock, getMemoryBlocks, getMonitor, getNamespace, getPlateComment, getPostComment, getPreComment, getProgramFile, getReference, getReference, getReferencesFrom, getReferencesTo, getRepeatableComment, getShort, getSymbol, getSymbolAfter, getSymbolAfter, getSymbolAt, getSymbolAt, getSymbolAt, getSymbolBefore, getSymbolBefore, getSymbols, getUndefinedDataAfter, getUndefinedDataAt, getUndefinedDataBefore, openDataTypeArchive, removeBookmark, removeData, removeDataAt, removeEntryPoint, removeEquate, removeEquate, removeEquates, removeFunction, removeFunctionAt, removeInstruction, removeInstructionAt, removeMemoryBlock, removeReference, removeSymbol, saveProgram, saveProgram, set, setByte, setBytes, setDouble, setEOLComment, setFloat, setInt, setLong, setPlateComment, setPostComment, setPreComment, setReferencePrimary, setReferencePrimary, setRepeatableComment, setShort, start, toAddr, toAddr, toAddr`

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

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

- ## Constructor Details

  - ### PythonScript

    public PythonScript()

- ## Method Details

  - ### run

    public void run()
    Description copied from class: `GhidraScript`
    The run method is where the script specific code is placed.
    Specified by:
      `run` in class `GhidraScript`

  - ### runScript

    public void runScript(String scriptName, GhidraState scriptState) throws Exception
    Description copied from class: `GhidraScript`
    Runs a script by name using the given state.

    It attempts to locate the script in the directories defined in `GhidraScriptUtil.getScriptDirectories()`.

    The script being run uses the given `GhidraState` (e.g., script variables) Any changes to the state by the script being run will be reflected in the given state object. If the given object is the current state, the this scripts state may be changed by the called script.

    Overrides:
      `runScript` in class `GhidraScript`
    Parameters:
      `scriptName` - the name of the script to run
      `scriptState` - the Ghidra state
    Throws:
      `IllegalArgumentException` - if the script does not exist
      `Exception` - if any exceptions occur while running the script
    See Also:
      - `GhidraScript.runScriptPreserveMyState(String)`
      - `GhidraScript.runScript(String)`

  - ### getCategory

    public String getCategory()
    Description copied from class: `GhidraScript`
    Returns the category for this script.
    Overrides:
      `getCategory` in class `GhidraScript`
    Returns:
      the category for this script