CAction | Large scale transformations applied to the varnode/op graph |
CActionActiveParam | Determine active parameters to sub-functions |
CActionActiveReturn | Determine which sub-functions have active output Varnodes |
CActionAssignHigh | Assign initial high-level HighVariable objects to each Varnode |
CActionBlockStructure | Structure control-flow using standard high-level code constructs |
CActionConditionalConst | Propagate conditional constants |
CActionConditionalExe | Search for and remove various forms of redundant CBRANCH operations |
CActionConstantPtr | Check for constants, with pointer type, that correspond to global symbols |
CActionConstbase | Search for input Varnodes that have been officially provided constant values |
CActionCopyMarker | Mark COPY operations between Varnodes representing the object as non-printing |
CActionDatabase | Database of root Action objects that can be used to transform a function |
CActionDeadCode | Dead code removal. Eliminate dead p-code ops |
CActionDefaultParams | Find a prototype for each sub-function |
CActionDeindirect | Eliminate locally constant indirect calls |
CActionDeterminedBranch | Remove conditional branches if the condition is constant |
CActionDirectWrite | Mark Varnodes built out of legal parameters |
CActionDominantCopy | Replace COPYs from the same source with a single dominant COPY |
CActionDoNothing | Remove blocks that do nothing |
CActionDynamicMapping | Attach dynamically mapped symbols to Varnodes in time for data-type propagation |
CActionDynamicSymbols | Make final attachments of dynamically mapped symbols to Varnodes |
CActionExtraPopSetup | Define formal link between stack-pointer values before and after sub-function calls |
CActionFinalStructure | Perform final organization of the control-flow structure |
CActionForceGoto | Apply any overridden forced gotos |
CActionFuncLink | Prepare for data-flow analysis of function parameters |
CActionFuncLinkOutOnly | Prepare for data-flow analysis of function parameters, when recovery isn't required |
CActionGroup | A group of actions (generally) applied in sequence |
CActionGroupList | The list of groups defining a root Action |
CActionHeritage | Build Static Single Assignment (SSA) representation for function |
CActionHideShadow | Locate shadow Varnodes and adjust them so they are hidden |
CActionInferTypes | Infer and propagate data-types |
CActionInputPrototype | Calculate the prototype for the function |
CActionLaneDivide | Find Varnodes with a vectorized lane scheme and attempt to split the lanes |
CActionLikelyTrash | Get rid of registers with trash values |
CActionMapGlobals | Create symbols for any discovered global variables in the function |
►CActionMarkExplicit | Find explicit Varnodes: Varnodes that have an explicit token representing them in the output |
COpStackElement | This class holds a single entry in a stack used to traverse Varnode expressions |
►CActionMarkImplied | Mark all the implied Varnode objects, which will have no explicit token in the output |
CDescTreeElement | This class holds a single entry in a stack used to forward traverse Varnode expressions |
CActionMarkIndirectOnly | Mark illegal Varnode inputs used only in CPUI_INDIRECT ops |
CActionMergeAdjacent | Try to merge an op's input Varnode to its output, if they are at the same storage location |
CActionMergeCopy | Try to merge the input and output Varnodes of a CPUI_COPY op |
CActionMergeMultiEntry | Try to merge Varnodes specified by Symbols with multiple SymbolEntrys |
CActionMergeRequired | Make required Varnode merges as dictated by CPUI_MULTIEQUAL, CPUI_INDIRECT, and addrtied property |
CActionMergeType | Try to merge Varnodes of the same type (if they don't hold different values at the same time) |
CActionMultiCse | Perform Common Sub-expression Elimination on CPUI_MULTIEQUAL ops |
►CActionNameVars | Choose names for all high-level variables (HighVariables) |
COpRecommend | This class is a record in a database used to store and lookup potential names |
CActionNodeJoin | Look for conditional branch expressions that have been split and rejoin them |
CActionNonzeroMask | Calculate the non-zero mask property on all Varnode objects |
CActionNormalizeBranches | Flip conditional control-flow so that preferred comparison operators are used |
CActionNormalizeSetup | Prepare function prototypes for "normalize" simplification |
CActionOutputPrototype | Set the (already) recovered output data-type as a formal part of the prototype |
CActionParamDouble | Deal with situations that look like double precision parameters |
CActionPool | A pool of Rules that apply simultaneously |
CActionPreferComplement | Attempt to normalize symmetric block structures |
CActionPrototypeTypes | Lay down locked input and output data-type information |
CActionPrototypeWarnings | Add warnings for prototypes that aren't modeled properly |
CActionRedundBranch | Get rid of redundant branches: duplicate edges between the same input and output block |
CActionRestartGroup | Action which checks if restart (sub)actions have been generated and restarts itself |
CActionRestrictLocal | Restrict possible range of local variables |
CActionRestructureHigh | Create symbols that map out the local stack-frame for the function |
CActionRestructureVarnode | Create symbols that map out the local stack-frame for the function |
CActionReturnRecovery | Determine data-flow holding the return value of the function |
CActionReturnSplit | Split the epilog code of the function |
CActionSegmentize | Make sure pointers into segmented spaces have the correct form |
CActionSetCasts | Fill-in CPUI_CAST p-code ops as required by the casting strategy |
CActionShadowVar | Check for one CPUI_MULTIEQUAL input set defining more than one Varnode |
CActionSpacebase | Mark Varnode objects that hold stack-pointer values and set-up special data-type |
CActionStackPtrFlow | Analyze change to the stack pointer across sub-function calls |
CActionStart | Gather raw p-code for a function |
CActionStartCleanUp | Start clean up after main transform phase |
CActionStartTypes | Allow type recovery to start happening |
CActionStop | Do any post-processing after decompilation |
CActionSwitchNorm | Normalize jump-table construction |
CActionUnjustifiedParams | Adjust improperly justified parameters |
CActionUnreachable | Remove unreachable blocks |
CActionVarnodeProps | Transform based on Varnode properties, such as read-only and volatile |
CAddForm | |
CAddress | A low-level machine address for labelling bytes and data |
CAddressResolver | Abstract class for converting native constants to addresses |
CAddrSpace | A region where processor data is stored |
CAddrSpaceManager | A manager for different address spaces |
CAddTreeState | Structure for sorting out pointer expression trees |
►CAliasChecker | A light-weight class for analyzing pointers and aliasing on the stack |
CAddBase | A helper class holding a Varnode pointer reference and a possible index added to it |
►CAncestorRealistic | Helper class for determining if Varnodes can trace their value from a legitimate source |
CState | Node in a depth first traversal of ancestors |
CArchitecture | Manager for all the major decompiler subsystems |
CArchitectureCapability | Abstract extension point for building Architecture objects |
CArchitectureGhidra | An implementation of the Architecture interface and connection to a Ghidra client |
CArchOption | Base class for options classes that affect the configuration of the Architecture object |
CAssemblyEmit | Abstract class for emitting disassembly to an application |
CAttributes | The attributes for a single XML element |
CBadDataError | Exception for bad instruction data |
CBfdArchitecture | Architecture that reads executable files using GNU BFD libraries |
CBfdArchitectureCapability | Extension point for building a GNU BFD capable Architecture |
CBlockBasic | A basic block for p-code operations |
CBlockCondition | Two conditional blocks combined into one conditional using BOOL_AND or BOOL_OR |
CBlockCopy | This class is used to mirror the BlockBasic objects in the fixed control-flow graph for a function |
CBlockDoWhile | A loop structure where the condition is checked at the bottom |
CBlockEdge | A control-flow edge between blocks (FlowBlock) |
CBlockFor | A loop structure with an initializer list, condition block, and post-body block statement |
CBlockGoto | A block that terminates with an unstructured (goto) branch to another block |
CBlockGraph | A control-flow block built out of sub-components |
CBlockIf | A basic "if" block |
CBlockInfLoop | An infinite loop structure |
CBlockList | A series of blocks that execute in sequence |
CBlockMap | Helper class for resolving cross-references while deserializing BlockGraph objects |
CBlockMultiGoto | A block with multiple edges out, at least one of which is an unstructured (goto) branch |
►CBlockSwitch | A structured switch construction |
CCaseOrder | A class for annotating and sorting the individual cases of the switch |
CBlockVarnode | Helper class associating a Varnode with the block where it is defined |
CBlockWhileDo | A loop structure where the condition is checked at the top |
CBreakCallBack | A breakpoint object |
CBreakTable | A collection of breakpoints for the emulator |
CBreakTableCallBack | A basic instantiation of a breakpoint table |
CCapabilityPoint | Class for automatically registering extension points to the decompiler |
CCastStrategy | A strategy for applying type casts |
CCastStrategyC | Casting strategies that are specific to the C language |
CCastStrategyJava | Casting strategies that are specific to the Java language |
CCircleRange | A class for manipulating integer value ranges |
Ccircularqueue | A circular buffer template |
CCollapseStructure | Build a code structure from a control-flow graph (BlockGraph) |
CComment | A comment attached to a specific function and code address |
CCommentDatabase | An interface to a container of comments |
CCommentDatabaseGhidra | An implementation of CommentDatabase backed by a Ghidra client |
CCommentDatabaseInternal | An in-memory implementation of the CommentDatabase API |
CCommentOrder | Compare two Comment pointers |
►CCommentSorter | A class for sorting comments into and within basic blocks |
CSubsort | The sorting key for placing a Comment within a specific basic block |
CCompilerTag | Contents of a <compiler> tag in a .ldefs file |
CConditionalExecution | A class for simplifying a series of conditionally executed statements |
►CConditionalJoin | Discover and eliminate split conditions |
CMergePair | A pair of Varnode objects that have been split (and should be merged) |
CConditionMarker | A helper class for describing the similarity of the boolean condition between 2 CBRANCH operations |
CConstantPool | An interface to the pool of constant objects for byte-code languages |
CConstantPoolGhidra | An implementation of ConstantPool using a Ghidra client as the backing storage |
►CConstantPoolInternal | An implementation of the ConstantPool interface storing records internally in RAM |
CCheapSorter | A cheap (efficient) placeholder for a reference to a constant pool record |
CConstantSpace | Special AddrSpace for representing constants during analysis |
CContentHandler | The SAX interface for parsing XML documents |
CContextBitRange | Description of a context variable within the disassembly context blob |
CContextCache | A helper class for caching the active context blob to minimize database lookups |
CContextDatabase | An interface to a database of disassembly/decompiler context information |
CContextGhidra | An implementation of a ContextDatabase obtaining context information via a Ghidra client |
►CContextInternal | An in-memory implementation of the ContextDatabase interface |
CFreeArray | A context blob, holding context values across some range of code addresses |
CCover | A description of the topological scope of a single variable object |
CCoverBlock | The topological scope of a variable within a basic block |
CCPoolRecord | A description of a byte-code object referenced by a constant |
CDatabase | A manager for symbol scopes for a whole executable |
CDatatype | The base datatype class for the decompiler |
CDatatypeCompare | Compare two Datatype pointers for equivalence of their description |
CDatatypeNameCompare | Compare two Datatype pointers: first by name, then by id |
CDataUnavailError | Exception indicating data was not available |
CDecompileAt | Command to decompile a specific function |
CDeregisterProgram | Command to release all resources associated with a Program (executable) in the decompiler |
CDisassemblyCache | |
CDocument | A complete in-memory XML document |
CDocumentStorage | A container for parsed XML documents |
CDynamicHash | A hash utility to uniquely identify a temporary Varnode in data-flow |
CDynamicRecommend | A name recommendation for a particular dynamic storage location |
CEffectRecord | Description of the indirect effect a sub-function has on a memory range |
CElement | An XML element. A node in the DOM tree |
CEmitNoXml | A trivial emitter that outputs syntax straight to the stream |
CEmitPrettyPrint | A generic source code pretty printer |
CEmitXml | Base class (and interface) for pretty printing and XML markup of tokens |
CEmulate | A pcode-based emulator interface |
CEmulateFunction | A light-weight emulator to calculate switch targets from switch variables |
CEmulateMemory | An abstract Emulate class using a MemoryState object as the backing machine state |
CEmulatePcodeCache | A SLEIGH based implementation of the Emulate interface |
CEmulatePcodeOp | Emulation based on (existing) PcodeOps and Varnodes |
CEmulateSnippet | Emulate a snippet of PcodeOps out of a functional context |
CEqual1Form | |
CEqual2Form | |
CEqual3Form | |
CEquateSymbol | A Symbol that holds equate information for a constant |
CEvaluationError | |
CExecutablePcode | A snippet of p-code that can be executed outside of normal analysis |
CExecutablePcodeGhidra | A p-code script that uses a Ghidra client to generate the p-code ops |
CExternRefSymbol | A function Symbol referring to an external location |
CFileStreamState | |
CFloatFormat | Encoding information for a single floating-point format |
CFloatingEdge | Class for holding an edge while the underlying graph is being manipulated |
CFlowBlock | Description of a control-flow block containing PcodeOps |
►CFlowInfo | A class for generating the control-flow structure for a single function |
CVisitStat | A helper function describing the number of bytes in a machine instruction and the starting p-code op |
CFlushNative | Command to flush all symbols associated with a Program (executable) |
CFspecSpace | A special space for encoding FuncCallSpecs |
CFuncCallSpecs | A class for analyzing parameters to a sub-function call |
CFuncdata | Container for data structures associated with a single function |
CFuncProto | A function prototype |
CFunctionSymbol | A Symbol representing an executable function |
CGhidraCapability | Registration point and dispatcher for commands sent to the decompiler |
CGhidraCommand | Base class for a command to the decompiler as issued by a Ghidra client |
CGhidraDecompCapability | The core decompiler commands capability |
CGhidraStringManager | Implementation of the StringManager that queries through the ghidra client |
CGhidraTranslate | An implementation of Translate that queries a Ghidra client for p-code information |
CGuardRecord | A (putative) switch variable Varnode and a constraint imposed by a CBRANCH |
►CHeritage | Manage the construction of Static Single Assignment (SSA) form |
CStackNode | Node for depth-first traversal of stack references |
CHeritageInfo | Information about heritage passes performed for a specific address space |
CHighEdge | A record for caching a Cover intersection test between two HighVariable objects |
CHighVariable | A high-level variable modeled as a list of low-level variables, each written once |
CIndirectForm | |
CInjectCallfixupGhidra | A call-fixup injection that uses a Ghidra client to generate the p-code ops |
CInjectCallotherGhidra | A callother-fixup injection that uses a Ghidra client to generate the p-code ops |
CInjectContext | Context needed to emit a p-code injection as a full set of p-code operations |
CInjectContextGhidra | An injection context that can be serialized and sent to the Ghidra client |
CInjectedUserOp | A user defined operation that is injected with other p-code |
CInjectParameter | An input or output parameter to a p-code injection payload |
CInjectPayload | An active container for a set of p-code operations that can be injected into data-flow |
CInjectPayloadGhidra | An injection payload that uses a Ghidra client to generate the p-code ops |
CIopSpace | Space for storing internal PcodeOp pointers as addresses |
CJavaError | Exception that mirrors exceptions thrown by the Ghidra client |
CJoinRecord | A record describing how logical values are split |
CJoinRecordCompare | Comparator for JoinRecord objects |
CJoinSpace | The pool of logically joined variables |
CJumpAssisted | A jump-table model assisted by pseudo-op directives in the code |
CJumpAssistOp | A user defined p-code op for assisting the recovery of jump tables |
CJumpBasic | The basic switch model |
CJumpBasic2 | A basic jump-table model with an added default address path |
CJumpBasicOverride | A basic jump-table model incorporating manual override information |
CJumpModel | A jump-table execution model |
CJumpModelTrivial | A trivial jump-table model, where the BRANCHIND input Varnode is the switch variable |
►CJumpTable | A map from values to control-flow targets within a function |
CIndexPair | An address table index and its corresponding out-edge |
CJumptableNotReachableError | Exception thrown is there are no legal flows to a switch |
CJumptableThunkError | Exception thrown for a thunk mechanism that looks like a jump-table |
CJumpValues | An iterator over values a switch variable can take |
CJumpValuesRange | Single entry switch variable that can take a range of values |
CJumpValuesRangeDefault | A jump-table starting range with two possible execution paths |
CLabSymbol | A Symbol that labels code internal to a function |
CLaneDescription | Description of logical lanes within a big Varnode |
►CLaneDivide | |
CWorkNode | Description of a large Varnode that needs to be traced (in the worklist) |
►CLanedRegister | Describes a (register) storage location and the ways it might be split into lanes |
CLanedIterator | Class for iterating over possible lane sizes |
CLanguageDescription | Contents of the <language> tag in a .ldefs file |
CLessConstForm | |
CLessThreeWay | |
CLoadGuard | Description of a LOAD operation that needs to be guarded |
CLoadImage | An interface into a particular binary executable image |
CLoadImageFunc | A record indicating a function symbol |
CLoadImageGhidra | An implementation of the LoadImage interface using a Ghidra client as the back-end |
CLoadImageSection | A record describing a section bytes in the executable |
CLoadImageXml | Implementation of the LoadImage interface using underlying data stored in an XML format |
CLoadTable | A description where and how data was loaded from memory |
CLocationMap | Map object for keeping track of which address ranges have been heritaged |
CLogicalForm | |
CLoopBody | A description of the body of a loop |
CLowlevelError | The lowest level error generated by the decompiler |
CMapIterator | An iterator over SymbolEntry objects in multiple address spaces |
CMapState | A container for hints about the data-type layout of an address space |
CMemoryBank | Memory storage/state for a single AddressSpace |
CMemoryHashOverlay | A memory bank that implements reads and writes using a hash table |
CMemoryImage | A kind of MemoryBank which retrieves its data from an underlying LoadImage |
CMemoryPageOverlay | Memory bank that overlays some other memory bank, using a "copy on write" behavior |
CMemoryState | All storage/state for a pcode machine |
CMerge | Class for merging low-level Varnodes into high-level HighVariables |
CMultForm | |
CNameRecommend | A symbol name recommendation with its associated storage location |
COpBehavior | Class encapsulating the action/behavior of specific pcode opcodes |
COpBehaviorBoolAnd | CPUI_BOOL_AND behavior |
COpBehaviorBoolNegate | CPUI_BOOL_NEGATE behavior |
COpBehaviorBoolOr | CPUI_BOOL_OR behavior |
COpBehaviorBoolXor | CPUI_BOOL_XOR behavior |
COpBehaviorCopy | CPUI_COPY behavior |
COpBehaviorEqual | CPUI_INT_EQUAL behavior |
COpBehaviorFloatAbs | CPUI_FLOAT_ABS behavior |
COpBehaviorFloatAdd | CPUI_FLOAT_ADD behavior |
COpBehaviorFloatCeil | CPUI_FLOAT_CEIL behavior |
COpBehaviorFloatDiv | CPUI_FLOAT_DIV behavior |
COpBehaviorFloatEqual | CPUI_FLOAT_EQUAL behavior |
COpBehaviorFloatFloat2Float | CPUI_FLOAT_FLOAT2FLOAT behavior |
COpBehaviorFloatFloor | CPUI_FLOAT_FLOOR behavior |
COpBehaviorFloatInt2Float | CPUI_FLOAT_INT2FLOAT behavior |
COpBehaviorFloatLess | CPUI_FLOAT_LESS behavior |
COpBehaviorFloatLessEqual | CPUI_FLOAT_LESSEQUAL behavior |
COpBehaviorFloatMult | CPUI_FLOAT_MULT behavior |
COpBehaviorFloatNan | CPUI_FLOAT_NAN behavior |
COpBehaviorFloatNeg | CPUI_FLOAT_NEG behavior |
COpBehaviorFloatNotEqual | CPUI_FLOAT_NOTEQUAL behavior |
COpBehaviorFloatRound | CPUI_FLOAT_ROUND behavior |
COpBehaviorFloatSqrt | CPUI_FLOAT_SQRT behavior |
COpBehaviorFloatSub | CPUI_FLOAT_SUB behavior |
COpBehaviorFloatTrunc | CPUI_FLOAT_TRUNC behavior |
COpBehaviorInt2Comp | CPUI_INT_2COMP behavior |
COpBehaviorIntAdd | CPUI_INT_ADD behavior |
COpBehaviorIntAnd | CPUI_INT_AND behavior |
COpBehaviorIntCarry | CPUI_INT_CARRY behavior |
COpBehaviorIntDiv | CPUI_INT_DIV behavior |
COpBehaviorIntLeft | CPUI_INT_LEFT behavior |
COpBehaviorIntLess | CPUI_INT_LESS behavior |
COpBehaviorIntLessEqual | CPUI_INT_LESSEQUAL behavior |
COpBehaviorIntMult | CPUI_INT_MULT behavior |
COpBehaviorIntNegate | CPUI_INT_NEGATE behavior |
COpBehaviorIntOr | CPUI_INT_OR behavior |
COpBehaviorIntRem | CPUI_INT_REM behavior |
COpBehaviorIntRight | CPUI_INT_RIGHT behavior |
COpBehaviorIntSborrow | CPUI_INT_SBORROW behavior |
COpBehaviorIntScarry | CPUI_INT_SCARRY behavior |
COpBehaviorIntSdiv | CPUI_INT_SDIV behavior |
COpBehaviorIntSext | CPUI_INT_SEXT behavior |
COpBehaviorIntSless | CPUI_INT_SLESS behavior |
COpBehaviorIntSlessEqual | CPUI_INT_SLESSEQUAL behavior |
COpBehaviorIntSrem | CPUI_INT_SREM behavior |
COpBehaviorIntSright | CPUI_INT_SRIGHT behavior |
COpBehaviorIntSub | CPUI_INT_SUB behavior |
COpBehaviorIntXor | CPUI_INT_XOR behavior |
COpBehaviorIntZext | CPUI_INT_ZEXT behavior |
COpBehaviorNotEqual | CPUI_INT_NOTEQUAL behavior |
COpBehaviorPiece | CPUI_PIECE behavior |
COpBehaviorPopcount | CPUI_POPCOUNT behavior |
COpBehaviorSubpiece | CPUI_SUBPIECE behavior |
COpFollow | A simple node used to dynamically define a sequence of operations |
COptionAliasBlock | Set how locked data-types on the stack affect alias heuristics |
COptionAllowContextSet | Toggle whether the disassembly engine is allowed to modify context |
COptionCommentHeader | Toggle whether different comment types are emitted by the decompiler in the header for a function |
COptionCommentIndent | How many characters to indent comment lines |
COptionCommentInstruction | Toggle whether different comment types are emitted by the decompiler in the body of a function |
COptionCommentStyle | Set the style of comment emitted by the decompiler |
COptionConventionPrinting | Toggle whether the calling convention is printed when emitting function prototypes |
COptionCurrentAction | Toggle a sub-group of actions within a root Action |
COptionDatabase | A Dispatcher for possible ArchOption commands |
COptionDefaultPrototype | Set the default prototype model for analyzing unknown functions |
COptionErrorReinterpreted | Toggle whether off-cut reinterpretation of an instruction is a fatal error |
COptionErrorTooManyInstructions | Toggle whether too many instructions in one function body is considered a fatal error |
COptionErrorUnimplemented | Toggle whether unimplemented instructions are treated as a fatal error |
COptionExtraPop | Set the extrapop parameter used by the (default) prototype model |
COptionHideExtensions | Toggle whether implied extensions (ZEXT or SEXT) are printed |
COptionIgnoreUnimplemented | Toggle whether unimplemented instructions are treated as a no-operation |
COptionIndentIncrement | Set the number of characters to indent per nested scope |
COptionInferConstPtr | Toggle whether the decompiler attempts to infer constant pointers |
COptionInline | Mark/unmark a specific function as inline |
COptionInPlaceOps | Toggle whether in-place operators (+=, *=, &=, etc.) are emitted by the decompiler |
COptionIntegerFormat | Set the formatting strategy used by the decompiler to emit integers |
COptionJumpLoad | Toggle whether the decompiler should try to recover the table used to evaluate a switch |
COptionMaxInstruction | |
COptionMaxLineWidth | Set the maximum number of characters per decompiled line |
COptionNamespaceStrategy | How should namespace tokens be displayed |
COptionNoCastPrinting | Toggle whether cast syntax is emitted by the decompiler or stripped |
COptionNoReturn | Mark/unmark a specific function with the noreturn property |
COptionNullPrinting | Toggle whether null pointers should be printed as the string "NULL" |
COptionProtoEval | Set the prototype model to use when evaluating the parameters of the current function |
COptionReadOnly | Toggle whether read-only memory locations have their value propagated |
COptionSetAction | Establish a new root Action for the decompiler |
COptionSetLanguage | Set the current language emitted by the decompiler |
COptionStructAlign | Alter the "structure alignment" data organization setting |
COptionToggleRule | Toggle whether a specific Rule is applied in the current Action |
COptionWarning | Toggle whether a warning should be issued if a specific action/rule is applied |
COpToken | A token representing an operator in the high-level language |
COtherSpace | Special AddrSpace for special/user-defined address spaces |
COverlaySpace | An overlay space |
COverride | A container of commands that override the decompiler's default behavior for a single function |
CParamActive | Container class for ParamTrial objects |
CParamEntry | A contiguous range of memory that can be used to pass parameters |
►CParamEntryRange | Class for storing ParamEntry objects in an interval range (rangemap) |
CInitData | Helper class for initializing ParamEntryRange in a range map |
CSubsortPosition | Helper class for subsorting on position |
CParameterBasic | A stand-alone parameter with no backing symbol |
CParameterPieces | Basic elements of a parameter: address, data-type, properties |
CParameterSymbol | A parameter with a formal backing Symbol |
CParamIDAnalysis | |
CParamList | |
CParamListMerged | A union of other input parameter passing models |
CParamListRegister | An unstructured model for passing input parameters to a function |
CParamListStandard | A standard model for parameters as an ordered list of storage resources |
CParamListStandardOut | A standard model for passing back return values from a function |
►CParamMeasure | |
CWalkState | |
CParamTrial | A register or memory register that may be used to pass a parameter or return value |
CParamUnassignedError | Exception thrown when a prototype can't be modeled properly |
CParseError | An error generated while parsing a command or language |
CPartialSymbolEntry | A structure for pushing nested fields to the RPN stack |
CPartition | A range of nodes (within the weak topological ordering) that are iterated together |
Cpartmap | A map from a linear space to value objects |
►CPathMeld | All paths from a (putative) switch variable to the CPUI_BRANCHIND |
CRootedOp | A PcodeOp in the path set associated with the last Varnode in the intersection |
CPcodeCacher | |
CPcodeData | |
CPcodeEmit | Abstract class for emitting pcode to an application |
CPcodeEmitCache | P-code emitter that dumps its raw Varnodes and PcodeOps to an in memory cache |
CPcodeEmitFd | A p-code emitter for building PcodeOp objects |
CPcodeInjectLibrary | A collection of p-code injection payloads |
CPcodeInjectLibraryGhidra | A p-code injection library that uses a Ghidra client to generate/compile the injection p-code |
CPcodeOp | Lowest level operation of the p-code language |
CPcodeOpBank | Container class for PcodeOps associated with a single function |
CPcodeOpEdge | Class representing a term in an additive expression |
CPcodeOpRaw | A low-level representation of a single pcode operation |
CPhiForm | |
►CPreferSplitManager | |
CSplitInstance | |
CPreferSplitRecord | |
CPrintC | The c-language token emitter |
CPrintCCapability | Factory and static initializer for the "c-language" back-end to the decompiler |
CPrintJava | The java-language token emitter |
CPrintJavaCapability | Factory and static initializer for the "java-language" back-end to the decompiler |
►CPrintLanguage | The base class API for emitting a high-level language |
CAtom | A single non-operator token emitted by the decompiler |
CNodePending | A pending data-flow node; waiting to be placed on the reverse polish notation stack |
CReversePolish | An entry on the reverse polish notation (RPN) stack |
CPrintLanguageCapability | Base class for high-level language capabilities |
CPriorityQueue | Priority queue for the phi-node (MULTIEQUAL) placement algorithm |
CPropagationState | A class that holds a data-type traversal state during type propagation |
CProtoModel | A prototype model: a model for passing parameters between functions |
CProtoModelMerged | A prototype model made by merging together other models |
CProtoParameter | A function parameter viewed as a name, data-type, and storage address |
CProtoStore | A collection parameter descriptions making up a function prototype |
CProtoStoreInternal | A collection of parameter descriptions without backing symbols |
CProtoStoreSymbol | A collection of parameter descriptions backed by Symbol information |
CPrototypePieces | Raw components of a function prototype (obtained from parsing source code) |
CRange | A contiguous range of bytes in some address space |
CRangeHint | Partial data-type information mapped to a specific range of bytes |
CRangeList | A disjoint set of Ranges, possibly across multiple address spaces |
►Crangemap | An interval map container |
CAddrRange | The internal sub-range object for the interval map |
CPartIterator | An iterator into the interval map container |
CRawBinaryArchitecture | Architecture that reads its binary as a raw file |
CRawBinaryArchitectureCapability | Extension point for building an Architecture that reads in raw images |
CRawLoadImage | A simple raw binary loadimage |
CRecovError | A generic recoverable error |
CRegisterProgram | Command to register a new Program (executable) with the decompiler |
CRelativeRecord | |
CRule | Class for performing a single transformation on a PcodeOp or Varnode |
CRule2Comp2Mult | Eliminate INT_2COMP: -V => V * -1 |
CRule2Comp2Sub | Cleanup: Convert INT_ADD back to INT_SUB: V + -W ==> V - W |
CRuleAddMultCollapse | Collapse constants in an additive or multiplicative expression |
CRuleAddUnsigned | Cleanup: Convert INT_ADD of constants to INT_SUB: V + 0xff... => V - 0x00... |
CRuleAndCommute | Commute INT_AND with INT_LEFT and INT_RIGHT: (V << W) & d => (V & (W >> c)) << c |
CRuleAndCompare | Simplify INT_ZEXT and SUBPIECE in masked comparison: zext(V) & c == 0 => V & (c & mask) == 0 |
CRuleAndDistribute | Distribute INT_AND through INT_OR if result is simpler |
CRuleAndMask | Collapse unnecessary INT_AND |
CRuleAndOrLump | Collapse constants in logical expressions: (V & c) & d => V & (c & d) |
CRuleAndPiece | Convert PIECE to INT_ZEXT where appropriate: V & concat(W,X) => zext(X) |
CRuleBitUndistribute | Undo distributed operations through INT_AND, INT_OR, and INT_XOR |
CRuleBooleanNegate | Simplify comparisons with boolean values: V == false => !V, V == true => V |
CRuleBoolNegate | Apply a set of identities involving BOOL_NEGATE |
CRuleBoolZext | Simplify boolean expressions of the form zext(V) * -1 |
CRuleBxor2NotEqual | Eliminate BOOL_XOR: V ^^ W => V != W |
CRuleCarryElim | Transform INT_CARRY using a constant: carry(V,c) => -c <= V |
CRuleCollapseConstants | Collapse constant expressions |
CRuleCollectTerms | Collect terms in a sum: V * c + V * d => V * (c + d) |
CRuleConcatCommute | Commute PIECE with INT_AND, INT_OR, and INT_XOR |
CRuleConcatLeftShift | Simplify concatenation of extended value: concat(V, zext(W) << c) => concat( concat(V,W), 0) |
CRuleConcatShift | Simplify INT_RIGHT canceling PIECE: concat(V,W) >> c => zext(V) |
CRuleConcatZero | Simplify concatenation with zero: concat(V,0) => zext(V) << c |
CRuleConcatZext | Commute PIECE with INT_ZEXT: concat(zext(V),W) => zext(concat(V,W)) |
►CRuleConditionalMove | Simplify various conditional move situations |
CBoolExpress | Class for categorizing and rebuilding a boolean expression |
CRuleCondNegate | Flip conditions to match structuring cues |
CRuleDivOpt | Convert INT_MULT and shift forms into INT_DIV or INT_SDIV |
CRuleDivTermAdd | Simplify expressions associated with optimized division expressions |
CRuleDivTermAdd2 | Simplify another expression associated with optimized division |
CRuleDoubleArithShift | Simplify two sequential INT_SRIGHT: (x s>> #c) s>> #d => x s>> saturate(#c + #d) |
CRuleDoubleIn | |
CRuleDoubleLoad | |
CRuleDoubleShift | Simplify chained shifts INT_LEFT and INT_RIGHT |
CRuleDoubleSub | Simplify chained SUBPIECE: sub( sub(V,c), d) => sub(V, c+d) |
CRuleDumptyHump | Simplify join and break apart: sub( concat(V,W), c) => sub(W,c) |
CRuleEarlyRemoval | Get rid of unused PcodeOp objects where we can guarantee the output is unused |
CRuleEmbed | Simplify PIECE intended as embedding: concat(V, sub(W,0)) => W & 0xff | (zext(W) << 8) |
CRuleEqual2Constant | Simplify INT_EQUAL applied to arithmetic expressions |
CRuleEqual2Zero | Simplify INT_EQUAL applied to 0: 0 == V + W * -1 => V == W or 0 == V + c => V == -c |
CRuleEquality | Collapse INT_EQUAL and INT_NOTEQUAL: f(V,W) == f(V,W) => true |
CRuleFloatCast | Replace (casttosmall)(casttobig)V with identity or with single cast |
CRuleFloatRange | Merge range conditions of the form: V f< c, c f< V, V f== c etc |
CRuleFuncPtrEncoding | Eliminate ARM/THUMB style masking of the low order bits on function pointers |
CRuleHighOrderAnd | Simplify INT_AND when applied to aligned INT_ADD: (V + c) & 0xfff0 => V + (c & 0xfff0) |
CRuleHumptyDumpty | Simplify break and rejoin: concat( sub(V,c), sub(V,0) ) => V |
CRuleHumptyOr | Simplify masked pieces INT_ORed together: (V & ff00) | (V & 00ff) => V |
CRuleIdentityEl | Collapse operations using identity element: V + 0 => V |
CRuleIgnoreNan | Treat FLOAT_NAN as always evaluating to false |
CRuleIndirectCollapse | Remove a CPUI_INDIRECT if its blocking PcodeOp is dead |
CRuleIntLessEqual | Convert LESSEQUAL to LESS: V <= c => V < (c+1) |
CRuleLeftRight | Transform canceling INT_RIGHT or INT_SRIGHT of INT_LEFT |
CRuleLess2Zero | Simplify INT_LESS applied to extremal constants |
CRuleLessEqual | Simplify 'less than or equal': V < W || V == W => V <= W |
CRuleLessEqual2Zero | Simplify INT_LESSEQUAL applied to extremal constants |
CRuleLessNotEqual | Simplify INT_LESSEQUAL && INT_NOTEQUAL: V <= W && V != W => V < W |
CRuleLessOne | Transform INT_LESS of 0 or 1: V < 1 => V == 0, V <= 0 => V == 0 |
CRuleLoadVarnode | Convert LOAD operations using a constant offset to COPY |
CRuleLogic2Bool | Convert logical to boolean operations: V & W => V && W, V | W => V || W |
CRuleModOpt | Simplify expressions that optimize INT_REM and INT_SREM |
CRuleMultiCollapse | Collapse MULTIEQUAL whose inputs all trace to the same value |
CRuleMultNegOne | Cleanup: Convert INT_2COMP from INT_MULT: V * -1 => -V |
CRuleNegateIdentity | Apply INT_NEGATE identities: V & ~V => #0, V | ~V -> #-1 |
CRuleNegateNegate | Simplify INT_NEGATE chains: ~~V => V |
CRuleNotDistribute | Distribute BOOL_NEGATE: !(V && W) => !V || !W |
CRuleOrCollapse | Collapse unnecessary INT_OR |
CRuleOrConsume | Simply OR with unconsumed input: `V = A | B => V = B if nzm(A) & consume(V) == 0 |
CRuleOrMask | Simplify INT_OR with full mask: V = W | 0xffff => V = W |
►CRuleOrPredicate | Simplify predication constructions involving the INT_OR operator |
CMultiPredicate | A helper class to mark up predicated INT_OR expressions |
CRulePiece2Sext | Concatenation with sign bits becomes an extension: concat( V s>> #0x1f , V) => sext(V) |
CRulePiece2Zext | Concatenation with 0 becomes an extension: V = concat(#0,W) => V = zext(W) |
CRulePiecePathology | Search for concatenations with unlikely things to inform return/parameter consumption calculation |
CRulePopcountBoolXor | Simplify boolean expressions that are combined through POPCOUNT |
CRulePositiveDiv | Signed division of positive values is unsigned division |
CRulePropagateCopy | Propagate the input of a COPY to all the places that read the output |
CRulePtraddUndo | Remove PTRADD operations with mismatched data-type information |
CRulePtrArith | Transform pointer arithmetic |
CRulePtrFlow | Mark Varnode and PcodeOp objects that are carrying or operating on pointers |
CRulePtrsubCharConstant | Cleanup: Set-up to print string constants |
CRulePtrsubUndo | Remove PTRSUB operations with mismatched data-type information |
CRulePullsubIndirect | Pull-back SUBPIECE through INDIRECT |
CRulePullsubMulti | Pull SUBPIECE back through MULTIEQUAL |
CRulePushMulti | Simplify MULTIEQUAL operations where the branches hold the same value |
CRulePushPtr | Push a Varnode with known pointer data-type to the bottom of its additive expression |
CRuleRangeMeld | Merge range conditions of the form: V s< c, c s< V, V == c, V != c |
CRuleRightShiftAnd | Simplify INT_RIGHT and INT_SRIGHT ops where an INT_AND mask becomes unnecessary |
CRuleSborrow | Simplify signed comparisons using INT_SBORROW |
CRuleSegment | Propagate constants through a SEGMENTOP |
CRuleSelectCse | Look for common sub-expressions (built out of a restricted set of ops) |
CRuleShift2Mult | Convert INT_LEFT to INT_MULT: V << 2 => V * 4 |
CRuleShiftAnd | Eliminate any INT_AND when the bits it zeroes out are discarded by a shift |
CRuleShiftBitops | Shifting away all non-zero bits of one-side of a logical/arithmetic op |
CRuleShiftCompare | Transform shifts in comparisons: V >> c == d => V == (d << c) |
CRuleShiftPiece | Convert "shift and add" to PIECE: (zext(V) << 16) + zext(W) => concat(V,W) |
CRuleShiftSub | Simplify SUBPIECE applied to INT_LEFT: sub( V << 8*c, c) => sub(V,0) |
CRuleSignDiv2 | Convert INT_SRIGHT form into INT_SDIV: (V + -1*(V s>> 31)) s>> 1 => V s/ 2 |
CRuleSignForm | Normalize sign extraction: sub(sext(V),c) => V s>> 31 |
CRuleSignNearMult | Simplify division form: (V + (V s>> 0x1f)>>(32-n)) & (-1<<n) => (V s/ 2^n) * 2^n |
CRuleSignShift | Normalize sign-bit extraction: V >> 0x1f => (V s>> 0x1f) * -1 |
CRuleSLess2Zero | Simplify INT_SLESS applied to 0 or -1 |
CRuleSlessToLess | Convert INT_SLESS to INT_LESS when comparing positive values |
CRuleSplitFlow | Try to detect and split artificially joined Varnodes |
CRuleStoreVarnode | Convert STORE operations using a constant offset to COPY |
CRuleStructOffset0 | Convert a LOAD or STORE to the first element of a structure to a PTRSUB |
CRuleSub2Add | Eliminate INT_SUB: V - W => V + W * -1 |
CRuleSubCancel | Simplify composition of SUBPIECE with INT_ZEXT or INT_SEXT |
CRuleSubCommute | Commute SUBPIECE operations with earlier operations where possible |
CRuleSubExtComm | Commute SUBPIECE and INT_ZEXT: sub(zext(V),c) => zext(sub(V,c)) |
CRuleSubfloatConvert | Perform SubfloatFlow analysis triggered by FLOAT_FLOAT2FLOAT |
CRuleSubNormal | Pull-back SUBPIECE through INT_RIGHT and INT_SRIGHT |
CRuleSubRight | Cleanup: Convert truncation to cast: sub(V,c) => sub(V>>c*8,0) |
CRuleSubvarAnd | Perform SubVariableFlow analysis triggered by INT_AND |
CRuleSubvarCompZero | Perform SubvariableFlow analysis triggered by testing of a single bit |
CRuleSubvarSext | Perform SubvariableFlow analysis triggered by INT_SEXT |
CRuleSubvarShift | Perform SubvariableFlow analysis triggered by INT_RIGHT |
CRuleSubvarSubpiece | Perform SubVariableFlow analysis triggered by SUBPIECE |
CRuleSubvarZext | Perform SubvariableFlow analysis triggered by INT_ZEXT |
CRuleSubZext | Simplify INT_ZEXT applied to SUBPIECE expressions |
CRuleSwitchSingle | Convert BRANCHIND with only one computed destination to a BRANCH |
CRuleTermOrder | Order the inputs to commutative operations |
CRuleTestSign | Convert sign-bit test to signed comparison: (V s>> 0x1f) != 0 => V s< 0 |
CRuleThreeWayCompare | Simplify expressions involving three-way comparisons |
CRuleTransformCpool | Transform CPOOLREF operations by looking up the value in the constant pool |
CRuleTrivialArith | Simplify trivial arithmetic expressions |
CRuleTrivialBool | Simplify boolean expressions when one side is constant |
CRuleTrivialShift | Simplify trivial shifts: V << 0 => V, V << #64 => 0 |
CRuleXorCollapse | Eliminate INT_XOR in comparisons: (V ^ W) == 0 => V == W |
CRuleXorSwap | |
CRuleZextCommute | Commute INT_ZEXT with INT_RIGHT: zext(V) >> W => zext(V >> W) |
CRuleZextEliminate | Eliminate INT_ZEXT in comparisons: zext(V) == c => V == c |
CRuleZextShiftZext | Simplify multiple INT_ZEXT operations: zext( zext(V) << c ) => zext(V) << c |
CRuleZextSless | Transform INT_ZEXT and INT_SLESS: zext(V) s< c => V < c |
CScope | A collection of Symbol objects within a single (namespace or functional) scope |
CScopeGhidra | An implementation of the Scope interface by querying a Ghidra client for Symbol information |
CScopeGhidraNamespace | A global namespace Scope |
CScopeInternal | An in-memory implementation of the Scope interface |
CScopeLocal | A Symbol scope for local variables of a particular function |
►CScopeMapper | An Address range associated with the symbol Scope that owns it |
CNullSubsort | Helper class for not doing any sub-sorting of overlapping ScopeMapper ranges |
►CScoreProtoModel | Class for calculating "goodness of fit" of parameter trials against a prototype model |
CPEntry | A record mapping trials to parameter entries in the prototype model |
CSegmentedResolver | A resolver for segmented architectures |
CSegmentOp | The segmented address operator |
CSeqNum | A class for uniquely labelling and comparing PcodeOps |
CSetAction | Command to set the root Action used by the decompiler or toggle output components |
CSetOptions | Command to toggle options within the decompiler |
CShiftForm | |
CSizePass | Label for describing extent of address range that has been heritaged |
CSleigh | |
CSleighArchitecture | An Architecture that uses the decompiler's native SLEIGH translation engine |
CSleighBase | Common core of classes that read or write SLEIGH specification files natively |
CSleighBuilder | |
CSpacebaseSpace | A virtual space stack space |
CSplitFlow | Class for splitting up Varnodes that hold 2 logical variables |
CSplitVarnode | |
CStackEqn | A stack equation |
CStackSolver | A class that solves for stack-pointer changes across unknown sub-functions |
►CStringManager | Storage for decoding and storing strings associated with an address |
CStringData | |
CStringManagerUnicode | An implementation of StringManager that understands terminated unicode strings |
CStructureGraph | Command to structure a control-flow graph |
CSubfloatFlow | Class for tracing changes of precision in floating point variables |
CSubForm | |
►CSubvariableFlow | Class for shrinking big Varnodes carrying smaller logical values |
CPatchRecord | Operation with a new logical value as (part of) input, but output Varnode is unchanged |
CReplaceOp | Placeholder node for PcodeOp operating on smaller logical values |
CReplaceVarnode | Placeholder node for Varnode holding a smaller logical value |
CSymbol | The base class for a symbol in a symbol table or scope |
CSymbolCompareName | Comparator for sorting Symbol objects by name |
►CSymbolEntry | A storage location for a particular Symbol |
CEntryInitData | Initialization data for a SymbolEntry to facilitate a rangemap |
CEntrySubsort | Class for sub-sorting different SymbolEntry objects at the same address |
CTermOrder | A class for ordering Varnode terms in an additive expression |
CTermPatternOp | A user defined p-code op that has a dynamically defined procedure |
CTokenSplit | A token/command object in the pretty printing stream |
CToOpEdge | An edge between a Varnode and a PcodeOp |
►CTraceDAG | Algorithm for selecting unstructured edges based an Directed Acyclic Graphs (DAG) |
CBadEdgeScore | Record for scoring a BlockTrace for suitability as an unstructured branch |
CBlockTrace | A trace of a single path out of a BranchPoint |
CBranchPoint | |
CTrackedContext | A tracked register (Varnode) and the value it contains |
CTransformManager | Class for splitting larger registers holding smaller logical lanes |
CTransformOp | Placeholder node for PcodeOp that will exist after a transform is applied to a function |
CTransformVar | Placeholder node for Varnode that will exist after a transform is applied to a function |
CTranslate | The interface to a translation engine for a processor |
CTreeHandler | A SAX interface implementation for constructing an in-memory DOM model |
CTruncationTag | Object for describing how a space should be truncated |
CTypeArray | Datatype object representing an array of elements |
CTypeBase | Base class for the fundamental atomic types |
CTypeChar | Base type for character data-types: i.e. char |
CTypeCode | Datatype object representing executable code |
CTypeEnum | An enumerated Datatype object: an integer with named values |
CTypeFactory | Container class for all Datatype objects in an Architecture |
CTypeFactoryGhidra | An implementation of the TypeFactory interface, query a Ghidra client for data-type information |
CTypeField | Specifies subfields of a structure or what a pointer points to |
CTypeOp | Associate data-type and behavior information with a specific p-code op-code |
CTypeOpBinary | A generic binary operator: two inputs and one output |
CTypeOpBoolAnd | Information about the BOOL_AND op-code |
CTypeOpBoolNegate | Information about the BOOL_NEGATE op-code |
CTypeOpBoolOr | Information about the BOOL_OR op-code |
CTypeOpBoolXor | Information about the BOOL_XOR op-code |
CTypeOpBranch | Information about the BRANCH op-code |
CTypeOpBranchind | Information about the BRANCHIND op-code |
CTypeOpCall | Information about the CALL op-code |
CTypeOpCallind | Information about the CALLIND op-code |
CTypeOpCallother | Information about the CALLOTHER op-code (user defined p-code operations) |
CTypeOpCast | Information about the CAST op-code |
CTypeOpCbranch | Information about the CBRANCH op-code |
CTypeOpCopy | Information about the COPY op-code |
CTypeOpCpoolref | Information about the CPOOLREF op-code |
CTypeOpEqual | Information about the INT_EQUAL op-code |
CTypeOpExtract | Information about the EXTRACT op-code |
CTypeOpFloatAbs | Information about the FLOAT_ABS op-code |
CTypeOpFloatAdd | Information about the FLOAT_ADD op-code |
CTypeOpFloatCeil | Information about the FLOAT_CEIL op-code |
CTypeOpFloatDiv | Information about the FLOAT_DIV op-code |
CTypeOpFloatEqual | Information about the FLOAT_EQUAL op-code |
CTypeOpFloatFloat2Float | Information about the FLOAT_FLOAT2FLOAT op-code |
CTypeOpFloatFloor | Information about the FLOAT_FLOOR op-code |
CTypeOpFloatInt2Float | Information about the FLOAT_INT2FLOAT op-code |
CTypeOpFloatLess | Information about the FLOAT_LESS op-code |
CTypeOpFloatLessEqual | Information about the FLOAT_LESSEQUAL op-code |
CTypeOpFloatMult | Information about the FLOAT_MULT op-code |
CTypeOpFloatNan | Information about the FLOAT_NAN op-code |
CTypeOpFloatNeg | Information about the FLOAT_NEG op-code |
CTypeOpFloatNotEqual | Information about the FLOAT_NOTEQUAL op-code |
CTypeOpFloatRound | Information about the FLOAT_ROUND op-code |
CTypeOpFloatSqrt | Information about the FLOAT_SQRT op-code |
CTypeOpFloatSub | Information about the FLOAT_SUB op-code |
CTypeOpFloatTrunc | Information about the FLOAT_TRUNC op-code |
CTypeOpFunc | A generic functional operator |
CTypeOpIndirect | Information about the INDIRECT op-code |
CTypeOpInsert | Information about the INSERT op-code |
CTypeOpInt2Comp | Information about the INT_2COMP op-code |
CTypeOpIntAdd | Information about the INT_ADD op-code |
CTypeOpIntAnd | Information about the INT_AND op-code |
CTypeOpIntCarry | Information about the INT_CARRY op-code |
CTypeOpIntDiv | Information about the INT_DIV op-code |
CTypeOpIntLeft | Information about the INT_LEFT op-code |
CTypeOpIntLess | Information about the INT_LESS op-code |
CTypeOpIntLessEqual | Information about the INT_LESSEQUAL op-code |
CTypeOpIntMult | Information about the INT_MULT op-code |
CTypeOpIntNegate | Information about the INT_NEGATE op-code |
CTypeOpIntOr | Information about the INT_OR op-code |
CTypeOpIntRem | Information about the INT_REM op-code |
CTypeOpIntRight | Information about the INT_RIGHT op-code |
CTypeOpIntSborrow | Information about the INT_SBORROW op-code |
CTypeOpIntScarry | Information about the INT_SCARRY op-code |
CTypeOpIntSdiv | Information about the INT_SDIV op-code |
CTypeOpIntSext | Information about the INT_SEXT op-code |
CTypeOpIntSless | Information about the INT_SLESS op-code |
CTypeOpIntSlessEqual | Information about the INT_SLESSEQUAL op-code |
CTypeOpIntSrem | Information about the INT_SREM op-code |
CTypeOpIntSright | Information about the INT_SRIGHT op-code |
CTypeOpIntSub | Information about the INT_SUB op-code |
CTypeOpIntXor | Information about the INT_XOR op-code |
CTypeOpIntZext | Information about the INT_ZEXT op-code |
CTypeOpLoad | Information about the LOAD op-code |
CTypeOpMulti | Information about the MULTIEQUAL op-code |
CTypeOpNew | Information about the NEW op-code |
CTypeOpNotEqual | Information about the INT_NOTEQUAL op-code |
CTypeOpPiece | Information about the PIECE op-code |
CTypeOpPopcount | Information about the POPCOUNT op-code |
CTypeOpPtradd | Information about the PTRADD op-code |
CTypeOpPtrsub | Information about the PTRSUB op-code |
CTypeOpReturn | Information about the RETURN op-code |
CTypeOpSegment | Information about the SEGMENTOP op-code |
CTypeOpStore | Information about the STORE op-code |
CTypeOpSubpiece | Information about the SUBPIECE op-code |
CTypeOpUnary | A generic unary operator: one input and one output |
CTypePointer | Datatype object representing a pointer |
CTypeRecommend | Data-type for a storage location when there is no Symbol (yet) |
CTypeSpacebase | Special Datatype object used to describe pointers that index into the symbol table |
CTypeStruct | A composite Datatype object: A "structure" with component "fields" |
CTypeUnicode | The unicode data-type: i.e. wchar |
CTypeVoid | Formal "void" data-type object |
CUnimplError | Exception for encountering unimplemented pcode |
CUniqueSpace | The pool of temporary storage registers |
CUnspecializedPcodeOp | A user defined p-code op with no specialization |
CUserOpManage | Manager/container for description objects (UserPcodeOp) of user defined p-code ops |
CUserPcodeOp | The base class for a detailed definition of a user-defined p-code operation |
►CValueSet | A range of values attached to a Varnode within a data-flow subsystem |
CEquation | An external that can be applied to a ValueSet |
CValueSetRead | A special form of ValueSet associated with the read point of a Varnode |
►CValueSetSolver | Class that determines a ValueSet for each Varnode in a data-flow system |
CValueSetEdge | An iterator over out-bound edges for a single ValueSet node in a data-flow system |
CVarnode | A low-level variable or contiguous set of bytes described by an Address and a size |
CVarnodeBank | A container for Varnode objects from a specific function |
CVarnodeCompareDefLoc | Compare two Varnode pointers by definition then location |
CVarnodeCompareLocDef | Compare two Varnode pointers by location then definition |
CVarnodeData | Data defining a specific memory location |
CVolatileOp | A base class for operations that access volatile memory |
CVolatileReadOp | An operation that reads from volatile memory |
CVolatileWriteOp | An operation that writes to volatile memory |
CWidener | Class holding a particular widening strategy for the ValueSetSolver iteration algorithm |
CWidenerFull | Class for doing normal widening |
CWidenerNone | Class for freezing value sets at a specific iteration (to accelerate convergence) |
CXmlArchitecture | An Architecture that loads executables using an XML format |
CXmlArchitectureCapability | Extension for building an XML format capable Architecture |
CXmlError | An exception thrown by the XML parser |
Cyy_buffer_state | |
Cyy_trans_info | |
Cyyalloc | |
CYYSTYPE | |