►Cghidra::Action | Large scale transformations applied to the varnode/op graph |
Cghidra::ActionActiveParam | Determine active parameters to sub-functions |
Cghidra::ActionActiveReturn | Determine which sub-functions have active output Varnodes |
Cghidra::ActionAssignHigh | Assign initial high-level HighVariable objects to each Varnode |
Cghidra::ActionBlockStructure | Structure control-flow using standard high-level code constructs |
Cghidra::ActionConditionalConst | Propagate conditional constants |
Cghidra::ActionConditionalExe | Search for and remove various forms of redundant CBRANCH operations |
Cghidra::ActionConstantPtr | Check for constants, with pointer type, that correspond to global symbols |
Cghidra::ActionConstbase | Search for input Varnodes that have been officially provided constant values |
Cghidra::ActionCopyMarker | Mark COPY operations between Varnodes representing the object as non-printing |
Cghidra::ActionDeadCode | Dead code removal. Eliminate dead p-code ops |
Cghidra::ActionDefaultParams | Find a prototype for each sub-function |
Cghidra::ActionDeindirect | Eliminate locally constant indirect calls |
Cghidra::ActionDeterminedBranch | Remove conditional branches if the condition is constant |
Cghidra::ActionDirectWrite | Mark Varnodes built out of legal parameters |
Cghidra::ActionDominantCopy | Replace COPYs from the same source with a single dominant COPY |
Cghidra::ActionDoNothing | Remove blocks that do nothing |
Cghidra::ActionDynamicMapping | Attach dynamically mapped symbols to Varnodes in time for data-type propagation |
Cghidra::ActionDynamicSymbols | Make final attachments of dynamically mapped symbols to Varnodes |
Cghidra::ActionExtraPopSetup | Define formal link between stack-pointer values before and after sub-function calls |
Cghidra::ActionFinalStructure | Perform final organization of the control-flow structure |
Cghidra::ActionForceGoto | Apply any overridden forced gotos |
Cghidra::ActionFuncLink | Prepare for data-flow analysis of function parameters |
Cghidra::ActionFuncLinkOutOnly | Prepare for data-flow analysis of function parameters, when recovery isn't required |
►Cghidra::ActionGroup | A group of actions (generally) applied in sequence |
Cghidra::ActionRestartGroup | Action which checks if restart (sub)actions have been generated and restarts itself |
Cghidra::ActionHeritage | Build Static Single Assignment (SSA) representation for function |
Cghidra::ActionHideShadow | Locate shadow Varnodes and adjust them so they are hidden |
Cghidra::ActionInferTypes | Infer and propagate data-types |
Cghidra::ActionInputPrototype | Calculate the prototype for the function |
Cghidra::ActionLaneDivide | Find Varnodes with a vectorized lane scheme and attempt to split the lanes |
Cghidra::ActionLikelyTrash | Get rid of registers with trash values |
Cghidra::ActionMapGlobals | Create symbols for any discovered global variables in the function |
Cghidra::ActionMarkExplicit | Find explicit Varnodes: Varnodes that have an explicit token representing them in the output |
Cghidra::ActionMarkImplied | Mark all the implied Varnode objects, which will have no explicit token in the output |
Cghidra::ActionMarkIndirectOnly | Mark illegal Varnode inputs used only in CPUI_INDIRECT ops |
Cghidra::ActionMergeAdjacent | Try to merge an op's input Varnode to its output, if they are at the same storage location |
Cghidra::ActionMergeCopy | Try to merge the input and output Varnodes of a CPUI_COPY op |
Cghidra::ActionMergeMultiEntry | Try to merge Varnodes specified by Symbols with multiple SymbolEntrys |
Cghidra::ActionMergeRequired | Make required Varnode merges as dictated by CPUI_MULTIEQUAL, CPUI_INDIRECT, and addrtied property |
Cghidra::ActionMergeType | Try to merge Varnodes of the same type (if they don't hold different values at the same time) |
Cghidra::ActionMultiCse | Perform Common Sub-expression Elimination on CPUI_MULTIEQUAL ops |
Cghidra::ActionNameVars | Choose names for all high-level variables (HighVariables) |
Cghidra::ActionNodeJoin | Look for conditional branch expressions that have been split and rejoin them |
Cghidra::ActionNonzeroMask | Calculate the non-zero mask property on all Varnode objects |
Cghidra::ActionNormalizeBranches | Flip conditional control-flow so that preferred comparison operators are used |
Cghidra::ActionNormalizeSetup | Prepare function prototypes for "normalize" simplification |
Cghidra::ActionOutputPrototype | Set the (already) recovered output data-type as a formal part of the prototype |
Cghidra::ActionParamDouble | Deal with situations that look like double precision parameters |
Cghidra::ActionPool | A pool of Rules that apply simultaneously |
Cghidra::ActionPreferComplement | Attempt to normalize symmetric block structures |
Cghidra::ActionPrototypeTypes | Lay down locked input and output data-type information |
Cghidra::ActionPrototypeWarnings | Add warnings for prototypes that aren't modeled properly |
Cghidra::ActionRedundBranch | Get rid of redundant branches: duplicate edges between the same input and output block |
Cghidra::ActionRestrictLocal | Restrict possible range of local variables |
Cghidra::ActionRestructureHigh | Create symbols that map out the local stack-frame for the function |
Cghidra::ActionRestructureVarnode | Create symbols that map out the local stack-frame for the function |
Cghidra::ActionReturnRecovery | Determine data-flow holding the return value of the function |
Cghidra::ActionReturnSplit | Split the epilog code of the function |
Cghidra::ActionSegmentize | Make sure pointers into segmented spaces have the correct form |
Cghidra::ActionSetCasts | Fill-in CPUI_CAST p-code ops as required by the casting strategy |
Cghidra::ActionShadowVar | Check for one CPUI_MULTIEQUAL input set defining more than one Varnode |
Cghidra::ActionSpacebase | Mark Varnode objects that hold stack-pointer values and set-up special data-type |
Cghidra::ActionStackPtrFlow | Analyze change to the stack pointer across sub-function calls |
Cghidra::ActionStart | Gather raw p-code for a function |
Cghidra::ActionStartCleanUp | Start clean up after main transform phase |
Cghidra::ActionStartTypes | Allow type recovery to start happening |
Cghidra::ActionStop | Do any post-processing after decompilation |
Cghidra::ActionStructureTransform | Give each control-flow structure an opportunity to make a final transform |
Cghidra::ActionSwitchNorm | Normalize jump-table construction |
Cghidra::ActionUnjustifiedParams | Adjust improperly justified parameters |
Cghidra::ActionUnreachable | Remove unreachable blocks |
Cghidra::ActionVarnodeProps | Transform based on Varnode properties, such as read-only and volatile |
Cghidra::ActionDatabase | Database of root Action objects that can be used to transform a function |
Cghidra::ActionGroupList | The list of groups defining a root Action |
Cghidra::AliasChecker::AddBase | A helper class holding a Varnode pointer reference and a possible index added to it |
Cghidra::AdditiveEdge | Class representing a term in an additive expression |
Cghidra::Address | A low-level machine address for labelling bytes and data |
►Cghidra::AddressResolver | Abstract class for converting native constants to addresses |
Cghidra::SegmentedResolver | A resolver for segmented architectures |
Cghidra::rangemap< _recordtype >::AddrRange | The internal sub-range object for the interval map |
►Cghidra::AddrSpace | A region where processor data is stored |
Cghidra::ConstantSpace | Special AddrSpace for representing constants during analysis |
Cghidra::FspecSpace | A special space for encoding FuncCallSpecs |
Cghidra::IopSpace | Space for storing internal PcodeOp pointers as addresses |
Cghidra::JoinSpace | The pool of logically joined variables |
Cghidra::OtherSpace | Special AddrSpace for special/user-defined address spaces |
Cghidra::OverlaySpace | An overlay space |
Cghidra::SpacebaseSpace | A virtual space stack space |
Cghidra::UniqueSpace | The pool of temporary storage registers |
►Cghidra::AddrSpaceManager | A manager for different address spaces |
►Cghidra::Architecture | Manager for all the major decompiler subsystems |
Cghidra::ArchitectureGhidra | An implementation of the Architecture interface and connection to a Ghidra client |
►Cghidra::SleighArchitecture | An Architecture that uses the decompiler's native SLEIGH translation engine |
Cghidra::BfdArchitecture | Architecture that reads executable files using GNU BFD libraries |
Cghidra::RawBinaryArchitecture | Architecture that reads its binary as a raw file |
Cghidra::XmlArchitecture | An Architecture that loads executables using an XML format |
►Cghidra::Translate | The interface to a translation engine for a processor |
Cghidra::GhidraTranslate | An implementation of Translate that queries a Ghidra client for p-code information |
►Cghidra::SleighBase | Common core of classes that read or write SLEIGH specification files natively |
Cghidra::Sleigh | A full SLEIGH engine |
Cghidra::SleighCompile | SLEIGH specification compiling |
Cghidra::AddTreeState | Structure for sorting out pointer expression trees |
Cghidra::AliasChecker | A light-weight class for analyzing pointers and aliasing on the stack |
Cghidra::AncestorRealistic | Helper class for determining if Varnodes can trace their value from a legitimate source |
►Cghidra::ArchOption | Base class for options classes that affect the configuration of the Architecture object |
Cghidra::OptionAliasBlock | Set how locked data-types on the stack affect alias heuristics |
Cghidra::OptionAllowContextSet | Toggle whether the disassembly engine is allowed to modify context |
Cghidra::OptionCommentHeader | Toggle whether different comment types are emitted by the decompiler in the header for a function |
Cghidra::OptionCommentIndent | How many characters to indent comment lines |
Cghidra::OptionCommentInstruction | Toggle whether different comment types are emitted by the decompiler in the body of a function |
Cghidra::OptionCommentStyle | Set the style of comment emitted by the decompiler |
Cghidra::OptionConventionPrinting | Toggle whether the calling convention is printed when emitting function prototypes |
Cghidra::OptionCurrentAction | Toggle a sub-group of actions within a root Action |
Cghidra::OptionDefaultPrototype | Set the default prototype model for analyzing unknown functions |
Cghidra::OptionErrorReinterpreted | Toggle whether off-cut reinterpretation of an instruction is a fatal error |
Cghidra::OptionErrorTooManyInstructions | Toggle whether too many instructions in one function body is considered a fatal error |
Cghidra::OptionErrorUnimplemented | Toggle whether unimplemented instructions are treated as a fatal error |
Cghidra::OptionExtraPop | Set the extrapop parameter used by the (default) prototype model |
Cghidra::OptionForLoops | Toggle whether the decompiler attempts to recover for-loop variables |
Cghidra::OptionHideExtensions | Toggle whether implied extensions (ZEXT or SEXT) are printed |
Cghidra::OptionIgnoreUnimplemented | Toggle whether unimplemented instructions are treated as a no-operation |
Cghidra::OptionIndentIncrement | Set the number of characters to indent per nested scope |
Cghidra::OptionInferConstPtr | Toggle whether the decompiler attempts to infer constant pointers |
Cghidra::OptionInline | Mark/unmark a specific function as inline |
Cghidra::OptionInPlaceOps | Toggle whether in-place operators (+=, *=, &=, etc.) are emitted by the decompiler |
Cghidra::OptionIntegerFormat | Set the formatting strategy used by the decompiler to emit integers |
Cghidra::OptionJumpLoad | Toggle whether the decompiler should try to recover the table used to evaluate a switch |
Cghidra::OptionJumpTableMax | Set the maximum number of entries that can be recovered for a single jump table |
Cghidra::OptionMaxInstruction | Maximum number of instructions that can be processed in a single function |
Cghidra::OptionMaxLineWidth | Set the maximum number of characters per decompiled line |
Cghidra::OptionNamespaceStrategy | How should namespace tokens be displayed |
Cghidra::OptionNoCastPrinting | Toggle whether cast syntax is emitted by the decompiler or stripped |
Cghidra::OptionNoReturn | Mark/unmark a specific function with the noreturn property |
Cghidra::OptionNullPrinting | Toggle whether null pointers should be printed as the string "NULL" |
Cghidra::OptionProtoEval | Set the prototype model to use when evaluating the parameters of the current function |
Cghidra::OptionReadOnly | Toggle whether read-only memory locations have their value propagated |
Cghidra::OptionSetAction | Establish a new root Action for the decompiler |
Cghidra::OptionSetLanguage | Set the current language emitted by the decompiler |
Cghidra::OptionSplitDatatypes | |
Cghidra::OptionStructAlign | Alter the "structure alignment" data organization setting |
Cghidra::OptionToggleRule | Toggle whether a specific Rule is applied in the current Action |
Cghidra::OptionWarning | Toggle whether a warning should be issued if a specific action/rule is applied |
►Cghidra::AssemblyEmit | Abstract class for emitting disassembly to an application |
Cghidra::IfaceAssemblyEmit | Disassembly emitter that prints to a console stream |
Cghidra::PrintLanguage::Atom | A single non-operator token emitted by the decompiler |
Cghidra::AttributeId | An annotation for a data element to being transferred to/from a stream |
Cghidra::Attributes | The attributes for a single XML element |
Cghidra::TraceDAG::BadEdgeScore | Record for scoring a BlockTrace for suitability as an unstructured branch |
Cghidra::BlockEdge | A control-flow edge between blocks (FlowBlock) |
Cghidra::BlockMap | Helper class for resolving cross-references while deserializing BlockGraph objects |
Cghidra::TraceDAG::BlockTrace | A trace of a single path out of a BranchPoint |
Cghidra::BlockVarnode | Helper class associating a Varnode with the block where it is defined |
Cghidra::RuleConditionalMove::BoolExpress | Class for categorizing and rebuilding a boolean expression |
Cghidra::TraceDAG::BranchPoint | |
Cghidra::BreakCallBack | A breakpoint object |
►Cghidra::BreakTable | A collection of breakpoints for the emulator |
Cghidra::BreakTableCallBack | A basic instantiation of a breakpoint table |
Cghidra::PackedDecode::ByteChunk | A bounded array of bytes |
►Cghidra::CapabilityPoint | Class for automatically registering extension points to the decompiler |
►Cghidra::ArchitectureCapability | Abstract extension point for building Architecture objects |
Cghidra::BfdArchitectureCapability | Extension point for building a GNU BFD capable Architecture |
Cghidra::RawBinaryArchitectureCapability | Extension point for building an Architecture that reads in raw images |
Cghidra::XmlArchitectureCapability | Extension for building an XML format capable Architecture |
►Cghidra::GhidraCapability | Registration point and dispatcher for commands sent to the decompiler |
Cghidra::GhidraDecompCapability | The core decompiler commands capability |
►Cghidra::IfaceCapability | Groups of console commands that are discovered by the loader |
Cghidra::IfaceDecompCapability | Interface capability point for all decompiler commands |
►Cghidra::PrintLanguageCapability | Base class for high-level language capabilities |
Cghidra::PrintCCapability | Factory and static initializer for the "c-language" back-end to the decompiler |
Cghidra::PrintJavaCapability | Factory and static initializer for the "java-language" back-end to the decompiler |
Cghidra::BlockSwitch::CaseOrder | A class for annotating and sorting the individual cases of the switch |
►Cghidra::CastStrategy | A strategy for applying type casts |
►Cghidra::CastStrategyC | Casting strategies that are specific to the C language |
Cghidra::CastStrategyJava | Casting strategies that are specific to the Java language |
Cghidra::ConstantPoolInternal::CheapSorter | A cheap (efficient) placeholder for a reference to a constant pool record |
Cghidra::CircleRange | A class for manipulating integer value ranges |
Cghidra::circularqueue< _type > | A circular buffer template |
Cghidra::circularqueue< ghidra::TokenSplit > | |
Cghidra::circularqueue< int4 > | |
Cghidra::CollapseStructure | Build a code structure from a control-flow graph (BlockGraph) |
Cghidra::Comment | A comment attached to a specific function and code address |
►Cghidra::CommentDatabase | An interface to a container of comments |
Cghidra::CommentDatabaseGhidra | An implementation of CommentDatabase backed by a Ghidra client |
Cghidra::CommentDatabaseInternal | An in-memory implementation of the CommentDatabase API |
Cghidra::CommentOrder | Compare two Comment pointers |
Cghidra::CommentSorter | A class for sorting comments into and within basic blocks |
Cghidra::CompilerTag | Contents of a <compiler> tag in a .ldefs file |
Cghidra::SplitDatatype::Component | A helper class describing a pair of matching data-types for the split |
Cghidra::ConditionalExecution | A class for simplifying a series of conditionally executed statements |
Cghidra::ConditionalJoin | Discover and eliminate split conditions |
Cghidra::ConditionMarker | A helper class for describing the similarity of the boolean condition between 2 CBRANCH operations |
Cghidra::ConsistencyChecker | Derive Varnode sizes and optimize p-code in SLEIGH Constructors |
►Cghidra::ConstantPool | An interface to the pool of constant objects for byte-code languages |
Cghidra::ConstantPoolGhidra | An implementation of ConstantPool using a Ghidra client as the backing storage |
Cghidra::ConstantPoolInternal | An implementation of the ConstantPool interface storing records internally in RAM |
►Cghidra::ContentHandler | The SAX interface for parsing XML documents |
Cghidra::TreeHandler | A SAX interface implementation for constructing an in-memory DOM model |
Cghidra::ContextBitRange | Description of a context variable within the disassembly context blob |
Cghidra::ContextCache | A helper class for caching the active context blob to minimize database lookups |
►Cghidra::ContextDatabase | An interface to a database of disassembly/decompiler context information |
Cghidra::ContextGhidra | An implementation of a ContextDatabase obtaining context information via a Ghidra client |
Cghidra::ContextInternal | An in-memory implementation of the ContextDatabase interface |
Cghidra::Cover | A description of the topological scope of a single variable object |
Cghidra::CoverBlock | The topological scope of a variable within a basic block |
Cghidra::CPoolRecord | A description of a byte-code object referenced by a constant |
Cghidra::Database | A manager for symbol scopes for a whole executable |
►Cghidra::Datatype | The base datatype class for the decompiler |
Cghidra::TypeArray | Datatype object representing an array of elements |
►Cghidra::TypeBase | Base class for the fundamental atomic types |
Cghidra::TypeChar | Base type for character data-types: i.e. char |
Cghidra::TypeEnum | An enumerated Datatype object: an integer with named values |
Cghidra::TypeUnicode | The unicode data-type: i.e. wchar |
Cghidra::TypeCode | Datatype object representing executable code |
Cghidra::TypePartialStruct | A data-type that holds part of a TypeStruct or TypeArray |
Cghidra::TypePartialUnion | An internal data-type for holding information about a variable's relative position within a union data-type |
►Cghidra::TypePointer | Datatype object representing a pointer |
Cghidra::TypePointerRel | Relative pointer: A pointer with a fixed offset into a specific structure or other data-type |
Cghidra::TypeSpacebase | Special Datatype object used to describe pointers that index into the symbol table |
Cghidra::TypeStruct | A composite Datatype object: A structure with component fields |
Cghidra::TypeUnion | A collection of overlapping Datatype objects: A union of component fields |
Cghidra::TypeVoid | Formal "void" data-type object |
Cghidra::DatatypeCompare | Compare two Datatype pointers for equivalence of their description |
Cghidra::DatatypeNameCompare | Compare two Datatype pointers: first by name, then by id |
►Cghidra::Decoder | A class for reading structured data from a stream |
Cghidra::PackedDecode | A byte-based decoder designed to marshal info to the decompiler efficiently |
Cghidra::XmlDecode | An XML based decoder |
Cghidra::DecoderError | An exception thrown by the XML parser |
Cghidra::ActionMarkImplied::DescTreeElement | This class holds a single entry in a stack used to forward traverse Varnode expressions |
Cghidra::DisassemblyCache | A container for disassembly context used by the SLEIGH engine |
Cghidra::DocumentStorage | A container for parsed XML documents |
Cghidra::DynamicHash | A hash utility to uniquely identify a temporary Varnode in data-flow |
Cghidra::DynamicRecommend | A name recommendation for a particular dynamic storage location |
Cghidra::EffectRecord | Description of the indirect effect a sub-function has on a memory range |
►Cghidra::Element | An XML element. A node in the DOM tree |
Cghidra::Document | A complete in-memory XML document |
Cghidra::ElementId | An annotation for a specific collection of hierarchical data |
►Cghidra::Emit | Interface for emitting the Decompiler's formal output: source code |
Cghidra::EmitMarkup | Emitter that associates markup with individual tokens |
Cghidra::EmitNoMarkup | A trivial emitter that outputs syntax straight to the stream |
Cghidra::EmitPrettyPrint | A generic source code pretty printer |
►Cghidra::Emulate | A pcode-based emulator interface |
►Cghidra::EmulateMemory | An abstract Emulate class using a MemoryState object as the backing machine state |
Cghidra::EmulatePcodeCache | A SLEIGH based implementation of the Emulate interface |
►Cghidra::EmulatePcodeOp | Emulation based on (existing) PcodeOps and Varnodes |
Cghidra::EmulateFunction | A light-weight emulator to calculate switch targets from switch variables |
Cghidra::EmulateSnippet | Emulate a snippet of PcodeOps out of a functional context |
►Cghidra::Encoder | A class for writing structured data to a stream |
Cghidra::PackedEncode | A byte-based encoder designed to marshal from the decompiler efficiently |
Cghidra::XmlEncode | An XML based encoder |
Cghidra::SymbolEntry::EntryInitData | Initialization data for a SymbolEntry to facilitate a rangemap |
Cghidra::SymbolEntry::EntrySubsort | Class for sub-sorting different SymbolEntry objects at the same address |
Cghidra::ValueSet::Equation | An external that can be applied to a ValueSet |
Cghidra::FieldContext | Helper function holding properties of a context field prior to calculating the context layout |
Cghidra::FieldQuality | Qualities associated (via parsing) with a token or context field |
Cghidra::FloatFormat | Encoding information for a single floating-point format |
Cghidra::FloatingEdge | Class for holding an edge while the underlying graph is being manipulated |
►Cghidra::FlowBlock | Description of a control-flow block containing PcodeOps |
Cghidra::BlockBasic | A basic block for p-code operations |
Cghidra::BlockCopy | This class is used to mirror the BlockBasic objects in the fixed control-flow graph for a function |
►Cghidra::BlockGraph | A control-flow block built out of sub-components |
Cghidra::BlockCondition | Two conditional blocks combined into one conditional using BOOL_AND or BOOL_OR |
Cghidra::BlockDoWhile | A loop structure where the condition is checked at the bottom |
Cghidra::BlockGoto | A block that terminates with an unstructured (goto) branch to another block |
Cghidra::BlockIf | A basic "if" block |
Cghidra::BlockInfLoop | An infinite loop structure |
Cghidra::BlockList | A series of blocks that execute in sequence |
Cghidra::BlockMultiGoto | A block with multiple edges out, at least one of which is an unstructured (goto) branch |
Cghidra::BlockSwitch | A structured switch construction |
Cghidra::BlockWhileDo | A loop structure where the condition is checked at the top |
Cghidra::FlowInfo | A class for generating the control-flow structure for a single function |
Cghidra::ContextInternal::FreeArray | A context blob, holding context values across some range of code addresses |
Cghidra::Funcdata | Container for data structures associated with a single function |
►Cghidra::FuncProto | A function prototype |
Cghidra::FuncCallSpecs | A class for analyzing parameters to a sub-function call |
Cghidra::FunctionTestCollection | A collection of tests around a single program/function |
Cghidra::FunctionTestProperty | A single property to be searched for in the output of a function decompilation |
►Cghidra::GhidraCommand | Base class for a command to the decompiler as issued by a Ghidra client |
Cghidra::DecompileAt | Command to decompile a specific function |
Cghidra::DeregisterProgram | Command to release all resources associated with a Program (executable) in the decompiler |
Cghidra::FlushNative | Command to flush all symbols associated with a Program (executable) |
Cghidra::RegisterProgram | Command to register a new Program (executable) with the decompiler |
Cghidra::SetAction | Command to set the root Action used by the decompiler or toggle output components |
Cghidra::SetOptions | Command to toggle options within the decompiler |
Cghidra::StructureGraph | Command to structure a control-flow graph |
Cghidra::GuardRecord | A (putative) switch variable Varnode and a constraint imposed by a CBRANCH |
Cghidra::Heritage | Manage the construction of Static Single Assignment (SSA) form |
Cghidra::HeritageInfo | Information about heritage passes performed for a specific address space |
Cghidra::HighEdge | A record for caching a Cover intersection test between two HighVariable objects |
Cghidra::HighIntersectTest | A cache of Cover intersection tests for HighVariables |
Cghidra::HighVariable | A high-level variable modeled as a list of low-level variables, each written once |
►Cghidra::IfaceCommand | A command that can be executed from the command line |
►Cghidra::IfaceBaseCommand | A root class for a basic set of commands |
Cghidra::IfcClosefile | Close command, closing the current bulk output file |
Cghidra::IfcEcho | Echo command to echo the current command line to the bulk output stream |
Cghidra::IfcHistory | History command to list the most recent successful commands |
Cghidra::IfcOpenfile | Open file command to redirect bulk output to a specific file stream |
Cghidra::IfcOpenfileAppend | Open file command directing bulk output to be appended to a specific file |
Cghidra::IfcQuit | Quit command to terminate processing from the given interface |
Cghidra::IfaceCommandDummy | A dummy command used during parsing |
►Cghidra::IfaceDecompCommand | Root class for all decompiler specific commands |
Cghidra::IfcAddrrangeLoad | Create a new function at an address: load addr <address> [<funcname>] |
Cghidra::IfcAdjustVma | Change the base address of the load image: adjust vma 0xabcd0123 |
Cghidra::IfcAnalyzeRange | Run value-set analysis on the current function: analyze range full|partial <varnode> |
Cghidra::IfcBreakaction | Set a breakpoint when a Rule or Action executes: break action <actionname> |
Cghidra::IfcBreakstart | Set a break point at the start of an Action: break start <actionname> |
Cghidra::IfcCallFixup | Add a new call fix-up to the program: fixup call ... |
►Cghidra::IfcCallGraphBuild | Build the call-graph for the architecture/program: callgraph build |
Cghidra::IfcCallGraphBuildQuick | Build the call-graph using quick analysis: callgraph build quick |
Cghidra::IfcCallGraphDump | Write the current call-graph to a file: callgraph dump <filename> |
Cghidra::IfcCallGraphList | List all functions in leaf order: callgraph list |
Cghidra::IfcCallGraphLoad | Load the call-graph from a file: callgraph load <filename> |
Cghidra::IfcCallOtherFixup | Add a new callother fix-up to the program: fixup callother ... |
Cghidra::IfcCleararch | Clear the current architecture/program: clear architecture |
Cghidra::IfcComment | A comment within a command script: % A comment in a script |
Cghidra::IfcCommentInstr | Attach a comment to an address: comment <address> comment text... |
Cghidra::IfcContinue | Continue decompilation after a break point: continue |
Cghidra::IfcCountPcode | Count p-code in the current function: count pcode |
Cghidra::IfcDeadcodedelay | Change when dead code elimination starts: deadcode delay <name> <delay> |
Cghidra::IfcDecompile | Decompile the current function: decompile |
Cghidra::IfcDump | Display bytes in the load image: dump <address+size> |
Cghidra::IfcDumpbinary | Dump a memory to file: binary <address+size> <filename> |
Cghidra::IfcDuplicateHash | Check for duplicate hashes in functions: duplicate hash |
Cghidra::IfcExecuteTestCommand | Execute a specified range of the test script: `execute test command <#>-<#> |
Cghidra::IfcFixupApply | Apply a call-fixup to a particular function: fixup apply <fixup> <function> |
Cghidra::IfcFlowOverride | Create a control-flow override: override flow <address> branch|call|callreturn|return |
Cghidra::IfcForceDatatypeFormat | Mark constants of a data-type to be printed in a specific format: force datatype <datatype> [hex|dec|oct|bin|char] |
Cghidra::IfcForceFormat | Mark a constant to be printed in a specific format: force varnode <varnode> [hex|dec|oct|bin|char] |
Cghidra::IfcForcegoto | Force a branch to be an unstructured goto: force goto <branchaddr> <targetaddr> |
Cghidra::IfcFuncload | Make a specific function current: load function <functionname> |
Cghidra::IfcGlobalAdd | Add a memory range as discoverable global variables: global add <address+size> |
Cghidra::IfcGlobalify | Treat all normal memory as discoverable global variables: global spaces |
Cghidra::IfcGlobalRegisters | Name global registers: global registers |
Cghidra::IfcGlobalRemove | Remove a memory range from discoverable global variables: global remove <address+size> |
Cghidra::IfcGraphControlflow | Write a graph representation of control-flow to a file: graph controlflow <filename> |
Cghidra::IfcGraphDataflow | Write a graph representation of data-flow to a file: graph dataflow <filename> |
Cghidra::IfcGraphDom | Write the forward dominance graph to a file: graph dom <filename> |
Cghidra::IfcIsolate | Mark a symbol as isolated from speculative merging: isolate <name> |
Cghidra::IfcJumpOverride | Provide an overriding jump-table for an indirect branch: override jumptable ... |
Cghidra::IfcListaction | List all current actions and rules for the decompiler: list action |
Cghidra::IfcListOverride | Display any overrides for the current function: list override |
Cghidra::IfcListprototypes | List known prototype models: list prototypes |
Cghidra::IfcListTestCommands | List all the script commands in the current test: list test commands |
Cghidra::IfcLoadTestFile | Load a datatest environment file: load test <filename> |
Cghidra::IfcLockPrototype | Lock in the current function's prototype: prototype lock |
Cghidra::IfcMapaddress | Map a new symbol into the program: map address <address> <typedeclaration> |
Cghidra::IfcMapconvert | Create an convert directive: map convert <format> <value> <address> <hash> |
Cghidra::IfcMapexternalref | Create an external ref symbol map externalref <address> <refaddress> [<name>] |
Cghidra::IfcMapfunction | Create a new function: map function <address> [<functionname>] [nocode] |
Cghidra::IfcMaphash | Add a dynamic symbol to the current function: map hash <address> <hash> <typedeclaration> |
Cghidra::IfcMaplabel | Create a code label: map label <name> <address> |
Cghidra::IfcMapunionfacet | Create a union field forcing directive: map facet <union> <fieldnum> <address> <hash> |
Cghidra::IfcNameVarnode | Attach a named symbol to a specific Varnode: name varnode <varnode> <name> |
Cghidra::IfcOption | Adjust a decompiler option: option <optionname> [<param1>] [<param2>] [<param3>] |
Cghidra::IfcParseFile | Parse a file with C declarations: parse file <filename> |
Cghidra::IfcParseLine | Parse a line of C syntax: parse line ... |
Cghidra::IfcPointerSetting | Create a pointer with additional settings: pointer setting <name> <basetype> offset <val> |
Cghidra::IfcPreferSplit | Mark a storage location to be split: prefersplit <address+size> <splitsize> |
Cghidra::IfcPrintActionstats | Print transform statistics for the decompiler engine: print actionstats |
Cghidra::IfcPrintBlocktree | Print a description of the current functions control-flow: print tree block |
Cghidra::IfcPrintCFlat | Print current function without control-flow: print C flat |
Cghidra::IfcPrintCGlobals | Print declarations for any known global variables: print C globals |
Cghidra::IfcPrintCover | Print cover info about a HighVariable: print cover high <name> |
Cghidra::IfcPrintCStruct | Print the current function using C syntax:print C |
Cghidra::IfcPrintCTypes | Print any known type definitions: print C types |
Cghidra::IfcPrintCXml | Print the current function with C syntax and XML markup:print C xml |
Cghidra::IfcPrintdisasm | Print disassembly of a memory range: disassemble [<address1> <address2>] |
Cghidra::IfcPrintExtrapop | Print change to stack pointer for called function: print extrapop [<functionname>] |
Cghidra::IfcPrintHigh | Display all Varnodes in a HighVariable: print high <name> |
Cghidra::IfcPrintInputs | Print info about the current function's input Varnodes: print inputs |
Cghidra::IfcPrintInputsAll | Print info about input Varnodes for all functions: print inputs all |
Cghidra::IfcPrintLanguage | Print current output using a specific language: print language <langname> |
Cghidra::IfcPrintLocalrange | Print range of locals on the stack: print localrange |
Cghidra::IfcPrintMap | Print info about a scope/namespace: print map <name> |
Cghidra::IfcPrintParamMeasures | Perform parameter-id analysis on the current function: print parammeasures |
Cghidra::IfcPrintRaw | Print the raw p-code for the current function: print raw |
Cghidra::IfcPrintSpaces | Print all address spaces: print spaces |
Cghidra::IfcPrintTree | Print all Varnodes in the current function: print tree varnode |
Cghidra::IfcPrintVarnode | Print information about a Varnode: print varnode <varnode> |
Cghidra::IfcProduceC | Write decompilation for all functions to a file: produce C <filename> |
Cghidra::IfcProducePrototypes | Determine the prototype model for all functions: produce prototypes |
Cghidra::IfcProtooverride | Override the prototype of a called function: override prototype <address> <declaration> |
Cghidra::IfcReadonly | Mark a memory range as read-only: readonly <address+size> |
Cghidra::IfcReadSymbols | Read in symbols from the load image: read symbols |
Cghidra::IfcRemove | Remove a symbol by name: remove <symbolname> |
Cghidra::IfcRename | Rename a variable: rename <oldname> <newname> |
Cghidra::IfcResetActionstats | Reset transform statistics for the decompiler engine: reset actionstats |
Cghidra::IfcRetype | Change the data-type of a symbol: retype <symbolname> <typedeclaration> |
Cghidra::IfcSetcontextrange | Set a context variable: set context <name> <value> [<startaddress> <endaddress>] |
Cghidra::IfcSettrackedrange | Set the value of a register: set track <name> <value> [<startaddress> <endaddress>] |
Cghidra::IfcSource | Execute a command script : source <filename> |
Cghidra::IfcStructureBlocks | Structure an external control-flow graph: structure blocks <infile> <outfile> |
Cghidra::IfcTypeVarnode | Attach a typed symbol to a specific Varnode: type varnode <varnode> <typedeclaration> |
Cghidra::IfcUnlockPrototype | Unlock the current function's prototype: prototype unlock |
Cghidra::IfcVarnodeCover | Print cover information about a Varnode: print cover varnode <varnode> |
Cghidra::IfcVarnodehighCover | Print cover info about a HighVariable: print cover varnodehigh <varnode> |
Cghidra::IfcVolatile | Mark a memory range as volatile: volatile <address+size> |
►Cghidra::IfaceData | Data specialized for a particular command module |
Cghidra::IfaceDecompData | Common data shared by decompiler commands |
►Cghidra::IfaceError | An exception specific to the command line interface |
Cghidra::IfaceExecutionError | An exception throw during the execution of a command |
Cghidra::IfaceParseError | An exception describing a parsing error in a command line |
►Cghidra::IfaceStatus | A generic console mode interface and command executor |
Cghidra::ConsoleCommands | A console command run as part of a test sequence |
Cghidra::IfaceTerm | Implement the command-line interface on top of a specific input stream |
Cghidra::JumpTable::IndexPair | An address table index and its corresponding out-edge |
Cghidra::ParamEntryRange::InitData | Helper class for initializing ParamEntryRange in a range map |
►Cghidra::InjectContext | Context needed to emit a p-code injection as a full set of p-code operations |
Cghidra::InjectContextGhidra | An injection context that can be serialized and sent to the Ghidra client |
Cghidra::InjectParameter | An input or output parameter to a p-code injection payload |
►Cghidra::InjectPayload | An active container for a set of p-code operations that can be injected into data-flow |
►Cghidra::ExecutablePcode | A snippet of p-code that can be executed outside of normal analysis |
Cghidra::ExecutablePcodeGhidra | A p-code script that uses a Ghidra client to generate the p-code ops |
►Cghidra::InjectPayloadGhidra | An injection payload that uses a Ghidra client to generate the p-code ops |
Cghidra::InjectCallfixupGhidra | A call-fixup injection that uses a Ghidra client to generate the p-code ops |
Cghidra::InjectCallotherGhidra | A callother-fixup injection that uses a Ghidra client to generate the p-code ops |
Cghidra::JoinRecord | A record describing how logical values are split |
Cghidra::JoinRecordCompare | Comparator for JoinRecord objects |
►Cghidra::JumpModel | A jump-table execution model |
Cghidra::JumpAssisted | A jump-table model assisted by pseudo-op directives in the code |
►Cghidra::JumpBasic | The basic switch model |
Cghidra::JumpBasic2 | A basic jump-table model with an added default address path |
Cghidra::JumpBasicOverride | A basic jump-table model incorporating manual override information |
Cghidra::JumpModelTrivial | A trivial jump-table model, where the BRANCHIND input Varnode is the switch variable |
Cghidra::JumpTable | A map from values to control-flow targets within a function |
►Cghidra::JumpValues | An iterator over values a switch variable can take |
►Cghidra::JumpValuesRange | Single entry switch variable that can take a range of values |
Cghidra::JumpValuesRangeDefault | A jump-table starting range with two possible execution paths |
Cghidra::LaneDescription | Description of logical lanes within a big Varnode |
Cghidra::LanedRegister::LanedIterator | Class for iterating over possible lane sizes |
Cghidra::LanedRegister | Describes a (register) storage location and the ways it might be split into lanes |
Cghidra::LanguageDescription | Contents of the <language> tag in a .ldefs file |
Cghidra::LoadGuard | Description of a LOAD operation that needs to be guarded |
►Cghidra::LoadImage | An interface into a particular binary executable image |
Cghidra::LoadImageGhidra | An implementation of the LoadImage interface using a Ghidra client as the back-end |
Cghidra::LoadImageXml | Implementation of the LoadImage interface using underlying data stored in an XML format |
Cghidra::RawLoadImage | A simple raw binary loadimage |
Cghidra::LoadImageFunc | A record indicating a function symbol |
Cghidra::LoadImageSection | A record describing a section bytes in the executable |
Cghidra::LoadTable | A description where and how data was loaded from memory |
Cghidra::LocationMap | Map object for keeping track of which address ranges have been heritaged |
Cghidra::LoopBody | A description of the body of a loop |
►Cghidra::LowlevelError | The lowest level error generated by the decompiler |
Cghidra::BadDataError | Exception for bad instruction data |
Cghidra::DataUnavailError | Exception indicating data was not available |
Cghidra::EvaluationError | |
Cghidra::JavaError | Exception that mirrors exceptions thrown by the Ghidra client |
Cghidra::JumptableNotReachableError | Exception thrown is there are no legal flows to a switch |
Cghidra::JumptableThunkError | Exception thrown for a thunk mechanism that looks like a jump-table |
Cghidra::ParamUnassignedError | Exception thrown when a prototype can't be modeled properly |
Cghidra::ParseError | An error generated while parsing a command or language |
►Cghidra::RecovError | A generic recoverable error |
Cghidra::DuplicateFunctionError | Exception thrown when a function is added more than once to the database |
Cghidra::UnimplError | Exception for encountering unimplemented pcode |
Cghidra::MapIterator | An iterator over SymbolEntry objects in multiple address spaces |
Cghidra::MapState | A container for hints about the data-type layout of an address space |
►Cghidra::MemoryBank | Memory storage/state for a single AddressSpace |
Cghidra::MemoryHashOverlay | A memory bank that implements reads and writes using a hash table |
Cghidra::MemoryImage | A kind of MemoryBank which retrieves its data from an underlying LoadImage |
Cghidra::MemoryPageOverlay | Memory bank that overlays some other memory bank, using a "copy on write" behavior |
Cghidra::MemoryState | All storage/state for a pcode machine |
Cghidra::Merge | Class for merging low-level Varnodes into high-level HighVariables |
Cghidra::ConditionalJoin::MergePair | A pair of Varnode objects that have been split (and should be merged) |
Cghidra::RuleOrPredicate::MultiPredicate | A helper class to mark up predicated INT_OR expressions |
Cghidra::NameRecommend | A symbol name recommendation with its associated storage location |
Cghidra::PrintLanguage::NodePending | A pending data-flow node; waiting to be placed on the reverse polish notation stack |
Cghidra::ScopeMapper::NullSubsort | Helper class for not doing any sub-sorting of overlapping ScopeMapper ranges |
►Cghidra::OpBehavior | Class encapsulating the action/behavior of specific pcode opcodes |
Cghidra::OpBehaviorBoolAnd | CPUI_BOOL_AND behavior |
Cghidra::OpBehaviorBoolNegate | CPUI_BOOL_NEGATE behavior |
Cghidra::OpBehaviorBoolOr | CPUI_BOOL_OR behavior |
Cghidra::OpBehaviorBoolXor | CPUI_BOOL_XOR behavior |
Cghidra::OpBehaviorCopy | CPUI_COPY behavior |
Cghidra::OpBehaviorEqual | CPUI_INT_EQUAL behavior |
Cghidra::OpBehaviorFloatAbs | CPUI_FLOAT_ABS behavior |
Cghidra::OpBehaviorFloatAdd | CPUI_FLOAT_ADD behavior |
Cghidra::OpBehaviorFloatCeil | CPUI_FLOAT_CEIL behavior |
Cghidra::OpBehaviorFloatDiv | CPUI_FLOAT_DIV behavior |
Cghidra::OpBehaviorFloatEqual | CPUI_FLOAT_EQUAL behavior |
Cghidra::OpBehaviorFloatFloat2Float | CPUI_FLOAT_FLOAT2FLOAT behavior |
Cghidra::OpBehaviorFloatFloor | CPUI_FLOAT_FLOOR behavior |
Cghidra::OpBehaviorFloatInt2Float | CPUI_FLOAT_INT2FLOAT behavior |
Cghidra::OpBehaviorFloatLess | CPUI_FLOAT_LESS behavior |
Cghidra::OpBehaviorFloatLessEqual | CPUI_FLOAT_LESSEQUAL behavior |
Cghidra::OpBehaviorFloatMult | CPUI_FLOAT_MULT behavior |
Cghidra::OpBehaviorFloatNan | CPUI_FLOAT_NAN behavior |
Cghidra::OpBehaviorFloatNeg | CPUI_FLOAT_NEG behavior |
Cghidra::OpBehaviorFloatNotEqual | CPUI_FLOAT_NOTEQUAL behavior |
Cghidra::OpBehaviorFloatRound | CPUI_FLOAT_ROUND behavior |
Cghidra::OpBehaviorFloatSqrt | CPUI_FLOAT_SQRT behavior |
Cghidra::OpBehaviorFloatSub | CPUI_FLOAT_SUB behavior |
Cghidra::OpBehaviorFloatTrunc | CPUI_FLOAT_TRUNC behavior |
Cghidra::OpBehaviorInt2Comp | CPUI_INT_2COMP behavior |
Cghidra::OpBehaviorIntAdd | CPUI_INT_ADD behavior |
Cghidra::OpBehaviorIntAnd | CPUI_INT_AND behavior |
Cghidra::OpBehaviorIntCarry | CPUI_INT_CARRY behavior |
Cghidra::OpBehaviorIntDiv | CPUI_INT_DIV behavior |
Cghidra::OpBehaviorIntLeft | CPUI_INT_LEFT behavior |
Cghidra::OpBehaviorIntLess | CPUI_INT_LESS behavior |
Cghidra::OpBehaviorIntLessEqual | CPUI_INT_LESSEQUAL behavior |
Cghidra::OpBehaviorIntMult | CPUI_INT_MULT behavior |
Cghidra::OpBehaviorIntNegate | CPUI_INT_NEGATE behavior |
Cghidra::OpBehaviorIntOr | CPUI_INT_OR behavior |
Cghidra::OpBehaviorIntRem | CPUI_INT_REM behavior |
Cghidra::OpBehaviorIntRight | CPUI_INT_RIGHT behavior |
Cghidra::OpBehaviorIntSborrow | CPUI_INT_SBORROW behavior |
Cghidra::OpBehaviorIntScarry | CPUI_INT_SCARRY behavior |
Cghidra::OpBehaviorIntSdiv | CPUI_INT_SDIV behavior |
Cghidra::OpBehaviorIntSext | CPUI_INT_SEXT behavior |
Cghidra::OpBehaviorIntSless | CPUI_INT_SLESS behavior |
Cghidra::OpBehaviorIntSlessEqual | CPUI_INT_SLESSEQUAL behavior |
Cghidra::OpBehaviorIntSrem | CPUI_INT_SREM behavior |
Cghidra::OpBehaviorIntSright | CPUI_INT_SRIGHT behavior |
Cghidra::OpBehaviorIntSub | CPUI_INT_SUB behavior |
Cghidra::OpBehaviorIntXor | CPUI_INT_XOR behavior |
Cghidra::OpBehaviorIntZext | CPUI_INT_ZEXT behavior |
Cghidra::OpBehaviorLzcount | CPUI_LZCOUNT behavior |
Cghidra::OpBehaviorNotEqual | CPUI_INT_NOTEQUAL behavior |
Cghidra::OpBehaviorPiece | CPUI_PIECE behavior |
Cghidra::OpBehaviorPopcount | CPUI_POPCOUNT behavior |
Cghidra::OpBehaviorSubpiece | CPUI_SUBPIECE behavior |
Cghidra::ActionNameVars::OpRecommend | This class is a record in a database used to store and lookup potential names |
Cghidra::ActionMarkExplicit::OpStackElement | This class holds a single entry in a stack used to traverse Varnode expressions |
Cghidra::ConsistencyChecker::OptimizeRecord | Description of how a temporary register is being used within a Constructor |
Cghidra::OptionDatabase | A Dispatcher for possible ArchOption commands |
Cghidra::OpToken | A token representing an operator in the high-level language |
Cghidra::Override | A container of commands that override the decompiler's default behavior for a single function |
Cghidra::ParamActive | Container class for ParamTrial objects |
Cghidra::ParamEntry | A contiguous range of memory that can be used to pass parameters |
Cghidra::ParamEntryRange | Class for storing ParamEntry objects in an interval range (rangemap) |
Cghidra::ParameterPieces | Basic elements of a parameter: address, data-type, properties |
►Cghidra::ParamList | |
►Cghidra::ParamListStandard | A standard model for parameters as an ordered list of storage resources |
Cghidra::ParamListMerged | A union of other input parameter passing models |
Cghidra::ParamListRegister | An unstructured model for passing input parameters to a function |
►Cghidra::ParamListRegisterOut | A model for passing back return values from a function |
Cghidra::ParamListStandardOut | A standard model for returning output parameters from a function |
Cghidra::ParamTrial | A register or memory register that may be used to pass a parameter or return value |
Cghidra::PartialSymbolEntry | A structure for pushing nested fields to the RPN stack |
Cghidra::rangemap< _recordtype >::PartIterator | An iterator into the interval map container |
Cghidra::Partition | A range of nodes (within the weak topological ordering) that are iterated together |
Cghidra::partmap< _linetype, _valuetype > | A map from a linear space to value objects |
Cghidra::partmap< ghidra::Address, ghidra::ContextInternal::FreeArray > | |
Cghidra::partmap< ghidra::Address, TrackedSet > | |
Cghidra::partmap< ghidra::Address, uint4 > | |
Cghidra::SubvariableFlow::PatchRecord | Operation with a new logical value as (part of) input, but output Varnode is unchanged |
Cghidra::PathMeld | All paths from a (putative) switch variable to the CPUI_BRANCHIND |
►CPcodeBuilder | |
Cghidra::MacroBuilder | A class for expanding macro directives within a p-code section |
Cghidra::SleighBuilder | Build p-code from a pre-parsed instruction |
Cghidra::PcodeCacher | Class for caching a chunk of p-code, prior to emitting |
►CPcodeCompile | |
Cghidra::SleighPcode | Parsing for the semantic section of Constructors |
Cghidra::PcodeData | Data for building one p-code instruction |
►Cghidra::PcodeEmit | Abstract class for emitting pcode to an application |
Cghidra::PcodeEmitCache | P-code emitter that dumps its raw Varnodes and PcodeOps to an in memory cache |
Cghidra::PcodeEmitFd | A p-code emitter for building PcodeOp objects |
►Cghidra::PcodeInjectLibrary | A collection of p-code injection payloads |
Cghidra::PcodeInjectLibraryGhidra | A p-code injection library that uses a Ghidra client to generate/compile the injection p-code |
Cghidra::PcodeOp | Lowest level operation of the p-code language |
Cghidra::PcodeOpBank | Container class for PcodeOps associated with a single function |
Cghidra::PcodeOpNode | An edge in a data-flow path or graph |
Cghidra::PcodeOpRaw | A low-level representation of a single pcode operation |
►Cghidra::PendPrint | Helper class for sending cancelable print commands to an ExitXml |
Cghidra::PendingBrace | Set of print commands for displaying an open brace '{' and setting a new indent level |
Cghidra::ScoreProtoModel::PEntry | A record mapping trials to parameter entries in the prototype model |
Cghidra::VariableGroup::PieceCompareByOffset | Compare two VariablePiece pointers by offset then by size |
Cghidra::PieceNode | A node in a tree structure of CPUI_PIECE operations |
Cghidra::PackedDecode::Position | An iterator into input stream |
►Cghidra::PrintLanguage | The base class API for emitting a high-level language |
►Cghidra::PrintC | The c-language token emitter |
Cghidra::PrintJava | The java-language token emitter |
Cghidra::PriorityQueue | Priority queue for the phi-node (MULTIEQUAL) placement algorithm |
Cghidra::PropagationState | A class that holds a data-type traversal state during type propagation |
►Cghidra::ProtoModel | A prototype model: a model for passing parameters between functions |
Cghidra::ProtoModelMerged | A prototype model made by merging together other models |
Cghidra::UnknownProtoModel | An unrecognized prototype model |
►Cghidra::ProtoParameter | A function parameter viewed as a name, data-type, and storage address |
Cghidra::ParameterBasic | A stand-alone parameter with no backing symbol |
Cghidra::ParameterSymbol | A parameter with a formal backing Symbol |
►Cghidra::ProtoStore | A collection parameter descriptions making up a function prototype |
Cghidra::ProtoStoreInternal | A collection of parameter descriptions without backing symbols |
Cghidra::ProtoStoreSymbol | A collection of parameter descriptions backed by Symbol information |
Cghidra::PrototypePieces | Raw components of a function prototype (obtained from parsing source code) |
Cghidra::Range | A contiguous range of bytes in some address space |
Cghidra::RangeHint | Partial data-type information mapped to a specific range of bytes |
Cghidra::RangeList | A disjoint set of Ranges, possibly across multiple address spaces |
Cghidra::rangemap< _recordtype > | An interval map container |
Cghidra::rangemap< ScopeMapper > | |
Cghidra::RangeProperties | A partially parsed description of a Range |
Cghidra::RelativeRecord | Class for describing a relative p-code branch destination |
Cghidra::SubvariableFlow::ReplaceOp | Placeholder node for PcodeOp operating on smaller logical values |
Cghidra::SubvariableFlow::ReplaceVarnode | Placeholder node for Varnode holding a smaller logical value |
Cghidra::ResolvedUnion | A data-type resolved from an associated TypeUnion or TypeStruct |
Cghidra::ResolveEdge | A data-flow edge to which a resolved data-type can be assigned |
Cghidra::PrintLanguage::ReversePolish | An entry on the reverse polish notation (RPN) stack |
Cghidra::PathMeld::RootedOp | A PcodeOp in the path set associated with the last Varnode in the intersection |
Cghidra::SplitDatatype::RootPointer | A helper class describing the pointer being passed to a LOAD or STORE |
Cghidra::RtlPair | A helper class to associate a named Constructor section with its symbol scope |
►Cghidra::Rule | Class for performing a single transformation on a PcodeOp or Varnode |
Cghidra::Rule2Comp2Mult | Eliminate INT_2COMP: -V => V * -1 |
Cghidra::Rule2Comp2Sub | Cleanup: Convert INT_ADD back to INT_SUB: V + -W ==> V - W |
Cghidra::RuleAddMultCollapse | Collapse constants in an additive or multiplicative expression |
Cghidra::RuleAddUnsigned | Cleanup: Convert INT_ADD of constants to INT_SUB: V + 0xff... => V - 0x00... |
Cghidra::RuleAndCommute | Commute INT_AND with INT_LEFT and INT_RIGHT: (V << W) & d => (V & (W >> c)) << c |
Cghidra::RuleAndCompare | Simplify INT_ZEXT and SUBPIECE in masked comparison: zext(V) & c == 0 => V & (c & mask) == 0 |
Cghidra::RuleAndDistribute | Distribute INT_AND through INT_OR if result is simpler |
Cghidra::RuleAndMask | Collapse unnecessary INT_AND |
Cghidra::RuleAndOrLump | Collapse constants in logical expressions: (V & c) & d => V & (c & d) |
Cghidra::RuleAndPiece | Convert PIECE to INT_ZEXT where appropriate: V & concat(W,X) => zext(X) |
Cghidra::RuleAndZext | Convert INT_AND to INT_ZEXT where appropriate: sext(X) & 0xffff => zext(X) |
Cghidra::RuleBitUndistribute | Undo distributed operations through INT_AND, INT_OR, and INT_XOR |
Cghidra::RuleBooleanNegate | Simplify comparisons with boolean values: V == false => !V, V == true => V |
Cghidra::RuleBoolNegate | Apply a set of identities involving BOOL_NEGATE |
Cghidra::RuleBoolZext | Simplify boolean expressions of the form zext(V) * -1 |
Cghidra::RuleBxor2NotEqual | Eliminate BOOL_XOR: V ^^ W => V != W |
Cghidra::RuleCarryElim | Transform INT_CARRY using a constant: carry(V,c) => -c <= V |
Cghidra::RuleCollapseConstants | Collapse constant expressions |
Cghidra::RuleCollectTerms | Collect terms in a sum: V * c + V * d => V * (c + d) |
Cghidra::RuleConcatCommute | Commute PIECE with INT_AND, INT_OR, and INT_XOR |
Cghidra::RuleConcatLeftShift | Simplify concatenation of extended value: concat(V, zext(W) << c) => concat( concat(V,W), 0) |
Cghidra::RuleConcatShift | Simplify INT_RIGHT canceling PIECE: concat(V,W) >> c => zext(V) |
Cghidra::RuleConcatZero | Simplify concatenation with zero: concat(V,0) => zext(V) << c |
Cghidra::RuleConcatZext | Commute PIECE with INT_ZEXT: concat(zext(V),W) => zext(concat(V,W)) |
Cghidra::RuleConditionalMove | Simplify various conditional move situations |
Cghidra::RuleCondNegate | Flip conditions to match structuring cues |
Cghidra::RuleDivChain | Collapse two consecutive divisions: (x / c1) / c2 => x / (c1*c2) |
Cghidra::RuleDivOpt | Convert INT_MULT and shift forms into INT_DIV or INT_SDIV |
Cghidra::RuleDivTermAdd | Simplify expressions associated with optimized division expressions |
Cghidra::RuleDivTermAdd2 | Simplify another expression associated with optimized division |
Cghidra::RuleDoubleArithShift | Simplify two sequential INT_SRIGHT: (x s>> c) s>> d => x s>> saturate(c + d) |
Cghidra::RuleDoubleShift | Simplify chained shifts INT_LEFT and INT_RIGHT |
Cghidra::RuleDoubleSub | Simplify chained SUBPIECE: sub( sub(V,c), d) => sub(V, c+d) |
Cghidra::RuleDumptyHump | Simplify join and break apart: sub( concat(V,W), c) => sub(W,c) |
Cghidra::RuleEarlyRemoval | Get rid of unused PcodeOp objects where we can guarantee the output is unused |
Cghidra::RuleEqual2Constant | Simplify INT_EQUAL applied to arithmetic expressions |
Cghidra::RuleEqual2Zero | Simplify INT_EQUAL applied to 0: 0 == V + W * -1 => V == W or 0 == V + c => V == -c |
Cghidra::RuleEquality | Collapse INT_EQUAL and INT_NOTEQUAL: f(V,W) == f(V,W) => true |
Cghidra::RuleExtensionPush | Duplicate CPUI_INT_ZEXT and CPUI_INT_SEXT operations if the result is used in multiple pointer calculations |
Cghidra::RuleFloatCast | Replace (casttosmall)(casttobig)V with identity or with single cast |
Cghidra::RuleFloatRange | Merge range conditions of the form: V f< c, c f< V, V f== c etc |
Cghidra::RuleFuncPtrEncoding | Eliminate ARM/THUMB style masking of the low order bits on function pointers |
Cghidra::RuleHighOrderAnd | Simplify INT_AND when applied to aligned INT_ADD: (V + c) & 0xfff0 => V + (c & 0xfff0) |
Cghidra::RuleHumptyDumpty | Simplify break and rejoin: concat( sub(V,c), sub(V,0) ) => V |
Cghidra::RuleHumptyOr | Simplify masked pieces INT_ORed together: (V & ff00) | (V & 00ff) => V |
Cghidra::RuleIdentityEl | Collapse operations using identity element: V + 0 => V |
Cghidra::RuleIgnoreNan | Treat FLOAT_NAN as always evaluating to false |
Cghidra::RuleIndirectCollapse | Remove a CPUI_INDIRECT if its blocking PcodeOp is dead |
Cghidra::RuleIntLessEqual | Convert LESSEQUAL to LESS: V <= c => V < (c+1) |
Cghidra::RuleLeftRight | Transform canceling INT_RIGHT or INT_SRIGHT of INT_LEFT |
Cghidra::RuleLess2Zero | Simplify INT_LESS applied to extremal constants |
Cghidra::RuleLessEqual | Simplify 'less than or equal': V < W || V == W => V <= W |
Cghidra::RuleLessEqual2Zero | Simplify INT_LESSEQUAL applied to extremal constants |
Cghidra::RuleLessNotEqual | Simplify INT_LESSEQUAL && INT_NOTEQUAL: V <= W && V != W => V < W |
Cghidra::RuleLessOne | Transform INT_LESS of 0 or 1: V < 1 => V == 0, V <= 0 => V == 0 |
Cghidra::RuleLoadVarnode | Convert LOAD operations using a constant offset to COPY |
Cghidra::RuleLogic2Bool | Convert logical to boolean operations: V & W => V && W, V | W => V || W |
Cghidra::RuleLzcountShiftBool | Simplify equality checks that use lzcount: lzcount(X) >> c => X == 0 if X is 2^c bits wide |
Cghidra::RuleModOpt | Simplify expressions that optimize INT_REM and INT_SREM |
Cghidra::RuleMultiCollapse | Collapse MULTIEQUAL whose inputs all trace to the same value |
Cghidra::RuleMultNegOne | Cleanup: Convert INT_2COMP from INT_MULT: V * -1 => -V |
Cghidra::RuleNegateIdentity | Apply INT_NEGATE identities: V & ~V => #0, V | ~V -> #-1 |
Cghidra::RuleNegateNegate | Simplify INT_NEGATE chains: ~~V => V |
Cghidra::RuleNotDistribute | Distribute BOOL_NEGATE: !(V && W) => !V || !W |
Cghidra::RuleOrCollapse | Collapse unnecessary INT_OR |
Cghidra::RuleOrConsume | Simply OR with unconsumed input: `V = A | B => V = B if nzm(A) & consume(V) == 0 |
Cghidra::RuleOrMask | Simplify INT_OR with full mask: V = W | 0xffff => V = W |
Cghidra::RuleOrMultiBool | Simplify boolean expressions that are combined through INT_OR |
Cghidra::RuleOrPredicate | Simplify predication constructions involving the INT_OR operator |
Cghidra::RulePiece2Sext | Concatenation with sign bits becomes an extension: concat( V s>> #0x1f , V) => sext(V) |
Cghidra::RulePiece2Zext | Concatenation with 0 becomes an extension: V = concat(#0,W) => V = zext(W) |
Cghidra::RulePiecePathology | Search for concatenations with unlikely things to inform return/parameter consumption calculation |
Cghidra::RulePieceStructure | Concatenating structure pieces gets printed as explicit write statements |
Cghidra::RulePopcountBoolXor | Simplify boolean expressions that are combined through POPCOUNT |
Cghidra::RulePositiveDiv | Signed division of positive values is unsigned division |
Cghidra::RulePropagateCopy | Propagate the input of a COPY to all the places that read the output |
Cghidra::RulePtraddUndo | Remove PTRADD operations with mismatched data-type information |
Cghidra::RulePtrArith | Transform pointer arithmetic |
Cghidra::RulePtrFlow | Mark Varnode and PcodeOp objects that are carrying or operating on pointers |
Cghidra::RulePtrsubCharConstant | Cleanup: Set-up to print string constants |
Cghidra::RulePtrsubUndo | Remove PTRSUB operations with mismatched data-type information |
Cghidra::RulePullsubIndirect | Pull-back SUBPIECE through INDIRECT |
Cghidra::RulePullsubMulti | Pull SUBPIECE back through MULTIEQUAL |
Cghidra::RulePushMulti | Simplify MULTIEQUAL operations where the branches hold the same value |
Cghidra::RulePushPtr | Push a Varnode with known pointer data-type to the bottom of its additive expression |
Cghidra::RuleRangeMeld | Merge range conditions of the form: V s< c, c s< V, V == c, V != c |
Cghidra::RuleRightShiftAnd | Simplify INT_RIGHT and INT_SRIGHT ops where an INT_AND mask becomes unnecessary |
Cghidra::RuleSborrow | Simplify signed comparisons using INT_SBORROW |
Cghidra::RuleSegment | Propagate constants through a SEGMENTOP |
Cghidra::RuleSelectCse | Look for common sub-expressions (built out of a restricted set of ops) |
Cghidra::RuleShift2Mult | Convert INT_LEFT to INT_MULT: V << 2 => V * 4 |
Cghidra::RuleShiftAnd | Eliminate any INT_AND when the bits it zeroes out are discarded by a shift |
Cghidra::RuleShiftBitops | Shifting away all non-zero bits of one-side of a logical/arithmetic op |
Cghidra::RuleShiftCompare | Transform shifts in comparisons: V >> c == d => V == (d << c) |
Cghidra::RuleShiftPiece | Convert "shift and add" to PIECE: (zext(V) << 16) + zext(W) => concat(V,W) |
Cghidra::RuleShiftSub | Simplify SUBPIECE applied to INT_LEFT: sub( V << 8*k, c) => sub(V,c-k) |
Cghidra::RuleSignDiv2 | Convert INT_SRIGHT form into INT_SDIV: (V + -1*(V s>> 31)) s>> 1 => V s/ 2 |
Cghidra::RuleSignForm | Normalize sign extraction: sub(sext(V),c) => V s>> 31 |
Cghidra::RuleSignForm2 | Normalize sign extraction: sub(sext(V) * small,c) s>> 31 => V s>> 31 |
Cghidra::RuleSignMod2nOpt | Convert INT_SREM forms: (V + (sign >> (64-n)) & (2^n-1)) - (sign >> (64-n) => V s% 2^n |
Cghidra::RuleSignMod2nOpt2 | Convert INT_SREM form: V - (Vadj & ~(2^n-1)) => V s% 2^n |
Cghidra::RuleSignMod2Opt | Convert INT_SREM form: (V - sign)&1 + sign => V s% 2 |
Cghidra::RuleSignNearMult | Simplify division form: (V + (V s>> 0x1f)>>(32-n)) & (-1<<n) => (V s/ 2^n) * 2^n |
Cghidra::RuleSignShift | Normalize sign-bit extraction: V >> 0x1f => (V s>> 0x1f) * -1 |
Cghidra::RuleSLess2Zero | Simplify INT_SLESS applied to 0 or -1 |
Cghidra::RuleSlessToLess | Convert INT_SLESS to INT_LESS when comparing positive values |
Cghidra::RuleSplitCopy | Split COPY ops based on TypePartialStruct |
Cghidra::RuleSplitFlow | Try to detect and split artificially joined Varnodes |
Cghidra::RuleSplitLoad | Split LOAD ops based on TypePartialStruct |
Cghidra::RuleSplitStore | Split STORE ops based on TypePartialStruct |
Cghidra::RuleStoreVarnode | Convert STORE operations using a constant offset to COPY |
Cghidra::RuleStructOffset0 | Convert a LOAD or STORE to the first element of a structure to a PTRSUB |
Cghidra::RuleSub2Add | Eliminate INT_SUB: V - W => V + W * -1 |
Cghidra::RuleSubCancel | Simplify composition of SUBPIECE with INT_ZEXT, INT_SEXT, and INT_AND |
Cghidra::RuleSubCommute | Commute SUBPIECE operations with earlier operations where possible |
Cghidra::RuleSubExtComm | Commute SUBPIECE and INT_ZEXT: sub(zext(V),c) => zext(sub(V,c)) |
Cghidra::RuleSubfloatConvert | Perform SubfloatFlow analysis triggered by FLOAT_FLOAT2FLOAT |
Cghidra::RuleSubNormal | Pull-back SUBPIECE through INT_RIGHT and INT_SRIGHT |
Cghidra::RuleSubRight | Cleanup: Convert truncation to cast: sub(V,c) => sub(V>>c*8,0) |
Cghidra::RuleSubvarAnd | Perform SubVariableFlow analysis triggered by INT_AND |
Cghidra::RuleSubvarCompZero | Perform SubvariableFlow analysis triggered by testing of a single bit |
Cghidra::RuleSubvarSext | Perform SubvariableFlow analysis triggered by INT_SEXT |
Cghidra::RuleSubvarShift | Perform SubvariableFlow analysis triggered by INT_RIGHT |
Cghidra::RuleSubvarSubpiece | Perform SubVariableFlow analysis triggered by SUBPIECE |
Cghidra::RuleSubvarZext | Perform SubvariableFlow analysis triggered by INT_ZEXT |
Cghidra::RuleSubZext | Simplify INT_ZEXT applied to SUBPIECE expressions |
Cghidra::RuleSwitchSingle | Convert BRANCHIND with only one computed destination to a BRANCH |
Cghidra::RuleTermOrder | Order the inputs to commutative operations |
Cghidra::RuleTestSign | Convert sign-bit test to signed comparison: (V s>> 0x1f) != 0 => V s< 0 |
Cghidra::RuleThreeWayCompare | Simplify expressions involving three-way comparisons |
Cghidra::RuleTransformCpool | Transform CPOOLREF operations by looking up the value in the constant pool |
Cghidra::RuleTrivialArith | Simplify trivial arithmetic expressions |
Cghidra::RuleTrivialBool | Simplify boolean expressions when one side is constant |
Cghidra::RuleTrivialShift | Simplify trivial shifts: V << 0 => V, V << #64 => 0 |
Cghidra::RuleXorCollapse | Eliminate INT_XOR in comparisons: (V ^ W) == 0 => V == W |
Cghidra::RuleXorSwap | Simplify limited chains of XOR operations |
Cghidra::RuleZextCommute | Commute INT_ZEXT with INT_RIGHT: zext(V) >> W => zext(V >> W) |
Cghidra::RuleZextEliminate | Eliminate INT_ZEXT in comparisons: zext(V) == c => V == c |
Cghidra::RuleZextShiftZext | Simplify multiple INT_ZEXT operations: zext( zext(V) << c ) => zext(V) << c |
Cghidra::RuleZextSless | Transform INT_ZEXT and INT_SLESS: zext(V) s< c => V < c |
►Cghidra::Scope | A collection of Symbol objects within a single (namespace or functional) scope |
Cghidra::ScopeGhidra | An implementation of the Scope interface by querying a Ghidra client for Symbol information |
►Cghidra::ScopeInternal | An in-memory implementation of the Scope interface |
Cghidra::ScopeGhidraNamespace | A global namespace Scope |
Cghidra::ScopeLocal | A Symbol scope for local variables of a particular function |
Cghidra::ScopeMapper | An Address range associated with the symbol Scope that owns it |
Cghidra::ScoreProtoModel | Class for calculating "goodness of fit" of parameter trials against a prototype model |
Cghidra::ScoreUnionFields | Analyze data-flow to resolve which field of a union data-type is being accessed |
Cghidra::SectionVector | A collection of named p-code sections for a single Constructor |
Cghidra::SeqNum | A class for uniquely labelling and comparing PcodeOps |
Cghidra::SizePass | Label for describing extent of address range that has been heritaged |
Cghidra::SourceFileIndexer | Class for recording source file information for SLEIGH constructors |
Cghidra::SpaceQuality | Qualities associated (via parsing) with an address space |
Cghidra::SplitDatatype | Split a p-code COPY, LOAD, or STORE op based on underlying composite data-type |
Cghidra::StackEqn | A stack equation |
Cghidra::Heritage::StackNode | Node for depth-first traversal of stack references |
Cghidra::StackSolver | A class that solves for stack-pointer changes across unknown sub-functions |
Cghidra::AncestorRealistic::State | Node in a depth first traversal of ancestors |
Cghidra::StringManager::StringData | String data (a sequence of bytes) stored by StringManager |
►Cghidra::StringManager | Storage for decoding and storing strings associated with an address |
Cghidra::GhidraStringManager | Implementation of the StringManager that queries through the ghidra client |
Cghidra::StringManagerUnicode | An implementation of StringManager that understands terminated unicode strings |
Cghidra::CommentSorter::Subsort | The sorting key for placing a Comment within a specific basic block |
Cghidra::ParamEntryRange::SubsortPosition | Helper class for subsorting on position |
Cghidra::SubvariableFlow | Class for shrinking big Varnodes carrying smaller logical values |
►Cghidra::Symbol | The base class for a symbol in a symbol table or scope |
Cghidra::EquateSymbol | A Symbol that holds equate information for a constant |
Cghidra::ExternRefSymbol | A function Symbol referring to an external location |
Cghidra::FunctionSymbol | A Symbol representing an executable function |
Cghidra::LabSymbol | A Symbol that labels code internal to a function |
Cghidra::UnionFacetSymbol | A Symbol that forces a particular union field at a particular point in the body of a function |
Cghidra::SymbolCompareName | Comparator for sorting Symbol objects by name |
Cghidra::SymbolEntry | A storage location for a particular Symbol |
Cghidra::TermOrder | A class for ordering Varnode terms in an additive expression |
Cghidra::TokenSplit | A token/command object in the pretty printing stream |
Cghidra::ToOpEdge | An edge between a Varnode and a PcodeOp |
Cghidra::TraceDAG | Algorithm for selecting unstructured edges based an Directed Acyclic Graphs (DAG) |
Cghidra::TrackedContext | A tracked register (Varnode) and the value it contains |
►Cghidra::TransformManager | Class for splitting larger registers holding smaller logical lanes |
Cghidra::LaneDivide | Class for splitting data-flow on laned registers |
Cghidra::SplitFlow | Class for splitting up Varnodes that hold 2 logical variables |
Cghidra::SubfloatFlow | Class for tracing changes of precision in floating point variables |
Cghidra::TransformOp | Placeholder node for PcodeOp that will exist after a transform is applied to a function |
Cghidra::TransformVar | Placeholder node for Varnode that will exist after a transform is applied to a function |
Cghidra::TraverseNode | Node for a forward traversal of a Varnode expression |
Cghidra::ScoreUnionFields::Trial | A trial data-type fitted to a specific place in the data-flow |
Cghidra::TruncationTag | Object for describing how a space should be truncated |
►Cghidra::TypeFactory | Container class for all Datatype objects in an Architecture |
Cghidra::TypeFactoryGhidra | An implementation of the TypeFactory interface, query a Ghidra client for data-type information |
Cghidra::TypeField | A field within a structure or union |
►Cghidra::TypeOp | Associate data-type and behavior information with a specific p-code op-code |
►Cghidra::TypeOpBinary | A generic binary operator: two inputs and one output |
Cghidra::TypeOpBoolAnd | Information about the BOOL_AND op-code |
Cghidra::TypeOpBoolOr | Information about the BOOL_OR op-code |
Cghidra::TypeOpBoolXor | Information about the BOOL_XOR op-code |
Cghidra::TypeOpEqual | Information about the INT_EQUAL op-code |
Cghidra::TypeOpFloatAdd | Information about the FLOAT_ADD op-code |
Cghidra::TypeOpFloatDiv | Information about the FLOAT_DIV op-code |
Cghidra::TypeOpFloatEqual | Information about the FLOAT_EQUAL op-code |
Cghidra::TypeOpFloatLess | Information about the FLOAT_LESS op-code |
Cghidra::TypeOpFloatLessEqual | Information about the FLOAT_LESSEQUAL op-code |
Cghidra::TypeOpFloatMult | Information about the FLOAT_MULT op-code |
Cghidra::TypeOpFloatNotEqual | Information about the FLOAT_NOTEQUAL op-code |
Cghidra::TypeOpFloatSub | Information about the FLOAT_SUB op-code |
Cghidra::TypeOpIntAdd | Information about the INT_ADD op-code |
Cghidra::TypeOpIntAnd | Information about the INT_AND op-code |
Cghidra::TypeOpIntDiv | Information about the INT_DIV op-code |
Cghidra::TypeOpIntLeft | Information about the INT_LEFT op-code |
Cghidra::TypeOpIntLess | Information about the INT_LESS op-code |
Cghidra::TypeOpIntLessEqual | Information about the INT_LESSEQUAL op-code |
Cghidra::TypeOpIntMult | Information about the INT_MULT op-code |
Cghidra::TypeOpIntOr | Information about the INT_OR op-code |
Cghidra::TypeOpIntRem | Information about the INT_REM op-code |
Cghidra::TypeOpIntRight | Information about the INT_RIGHT op-code |
Cghidra::TypeOpIntSdiv | Information about the INT_SDIV op-code |
Cghidra::TypeOpIntSless | Information about the INT_SLESS op-code |
Cghidra::TypeOpIntSlessEqual | Information about the INT_SLESSEQUAL op-code |
Cghidra::TypeOpIntSrem | Information about the INT_SREM op-code |
Cghidra::TypeOpIntSright | Information about the INT_SRIGHT op-code |
Cghidra::TypeOpIntSub | Information about the INT_SUB op-code |
Cghidra::TypeOpIntXor | Information about the INT_XOR op-code |
Cghidra::TypeOpNotEqual | Information about the INT_NOTEQUAL op-code |
Cghidra::TypeOpBranch | Information about the BRANCH op-code |
Cghidra::TypeOpBranchind | Information about the BRANCHIND op-code |
Cghidra::TypeOpCall | Information about the CALL op-code |
Cghidra::TypeOpCallind | Information about the CALLIND op-code |
Cghidra::TypeOpCallother | Information about the CALLOTHER op-code (user defined p-code operations) |
Cghidra::TypeOpCast | Information about the CAST op-code |
Cghidra::TypeOpCbranch | Information about the CBRANCH op-code |
Cghidra::TypeOpCopy | Information about the COPY op-code |
Cghidra::TypeOpCpoolref | Information about the CPOOLREF op-code |
►Cghidra::TypeOpFunc | A generic functional operator |
Cghidra::TypeOpExtract | Information about the EXTRACT op-code |
Cghidra::TypeOpFloatAbs | Information about the FLOAT_ABS op-code |
Cghidra::TypeOpFloatCeil | Information about the FLOAT_CEIL op-code |
Cghidra::TypeOpFloatFloat2Float | Information about the FLOAT_FLOAT2FLOAT op-code |
Cghidra::TypeOpFloatFloor | Information about the FLOAT_FLOOR op-code |
Cghidra::TypeOpFloatInt2Float | Information about the FLOAT_INT2FLOAT op-code |
Cghidra::TypeOpFloatNan | Information about the FLOAT_NAN op-code |
Cghidra::TypeOpFloatRound | Information about the FLOAT_ROUND op-code |
Cghidra::TypeOpFloatSqrt | Information about the FLOAT_SQRT op-code |
Cghidra::TypeOpFloatTrunc | Information about the FLOAT_TRUNC op-code |
Cghidra::TypeOpInsert | Information about the INSERT op-code |
Cghidra::TypeOpIntCarry | Information about the INT_CARRY op-code |
Cghidra::TypeOpIntSborrow | Information about the INT_SBORROW op-code |
Cghidra::TypeOpIntScarry | Information about the INT_SCARRY op-code |
Cghidra::TypeOpIntSext | Information about the INT_SEXT op-code |
Cghidra::TypeOpIntZext | Information about the INT_ZEXT op-code |
Cghidra::TypeOpLzcount | Information about the LZCOUNT op-code |
Cghidra::TypeOpPiece | Information about the PIECE op-code |
Cghidra::TypeOpPopcount | Information about the POPCOUNT op-code |
Cghidra::TypeOpSubpiece | Information about the SUBPIECE op-code |
Cghidra::TypeOpIndirect | Information about the INDIRECT op-code |
Cghidra::TypeOpLoad | Information about the LOAD op-code |
Cghidra::TypeOpMulti | Information about the MULTIEQUAL op-code |
Cghidra::TypeOpNew | Information about the NEW op-code |
Cghidra::TypeOpPtradd | Information about the PTRADD op-code |
Cghidra::TypeOpPtrsub | Information about the PTRSUB op-code |
Cghidra::TypeOpReturn | Information about the RETURN op-code |
Cghidra::TypeOpSegment | Information about the SEGMENTOP op-code |
Cghidra::TypeOpStore | Information about the STORE op-code |
►Cghidra::TypeOpUnary | A generic unary operator: one input and one output |
Cghidra::TypeOpBoolNegate | Information about the BOOL_NEGATE op-code |
Cghidra::TypeOpFloatNeg | Information about the FLOAT_NEG op-code |
Cghidra::TypeOpInt2Comp | Information about the INT_2COMP op-code |
Cghidra::TypeOpIntNegate | Information about the INT_NEGATE op-code |
Cghidra::TypeRecommend | Data-type for a storage location when there is no Symbol (yet) |
Cghidra::UnitTest | Simple unit test class |
Cghidra::UserOpManage | Manager/container for description objects (UserPcodeOp) of user defined p-code ops |
►Cghidra::UserPcodeOp | The base class for a detailed definition of a user-defined p-code operation |
Cghidra::InjectedUserOp | A user defined operation that is injected with other p-code |
Cghidra::JumpAssistOp | A user defined p-code op for assisting the recovery of jump tables |
►Cghidra::TermPatternOp | A user defined p-code op that has a dynamically defined procedure |
Cghidra::SegmentOp | The segmented address operator |
Cghidra::UnspecializedPcodeOp | A user defined p-code op with no specialization |
►Cghidra::VolatileOp | A base class for operations that access volatile memory |
Cghidra::VolatileReadOp | An operation that reads from volatile memory |
Cghidra::VolatileWriteOp | An operation that writes to volatile memory |
Cghidra::ValueSet | A range of values attached to a Varnode within a data-flow subsystem |
Cghidra::ValueSetSolver::ValueSetEdge | An iterator over out-bound edges for a single ValueSet node in a data-flow system |
Cghidra::ValueSetRead | A special form of ValueSet associated with the read point of a Varnode |
Cghidra::ValueSetSolver | Class that determines a ValueSet for each Varnode in a data-flow system |
Cghidra::VariableGroup | Forward declaration |
Cghidra::VariablePiece | Information about how a HighVariable fits into a larger group or Symbol |
Cghidra::Varnode | A low-level variable or contiguous set of bytes described by an Address and a size |
Cghidra::VarnodeBank | A container for Varnode objects from a specific function |
Cghidra::VarnodeCompareDefLoc | Compare two Varnode pointers by definition then location |
Cghidra::VarnodeCompareLocDef | Compare two Varnode pointers by location then definition |
Cghidra::VarnodeData | Data defining a specific memory location |
Cghidra::ScoreUnionFields::VisitMark | A mark accumulated when a given Varnode is visited with a specific field index |
Cghidra::FlowInfo::VisitStat | A helper function describing the number of bytes in a machine instruction and the starting p-code op |
►Cghidra::Widener | Class holding a particular widening strategy for the ValueSetSolver iteration algorithm |
Cghidra::WidenerFull | Class for doing normal widening |
Cghidra::WidenerNone | Class for freezing value sets at a specific iteration (to accelerate convergence) |
Cghidra::WithBlock | Subtable, pattern, and context information applied across a with block |
Cghidra::LaneDivide::WorkNode | Description of a large Varnode that needs to be traced (in the worklist) |