BlockCondition |
Block representing and '&&' or '||' control flow path within a conditional expression
possible multiple incoming edges
2 outgoing edges, one for true control flow, one for false control flow
one "initial" condition block, with 2 outgoing edges
one "secondary" condition block, with 2 outgoing edges, exactly 1 incoming edge from "initial"
|
BlockCopy |
Placeholder for a basic block (BlockBasic) within a structured
control-flow graph.
|
BlockDoWhile |
Do-while block:
possible multiple incoming edges
1 (implied) edge outgoing back to itself
1 edge outgoing (the loop exit)
1 block representing the body of the loop
|
BlockGoto |
A "plain" goto block
possible multiple incoming edges
no outgoing edges
1 (implied) outgoing edge representing the unstructured goto
|
BlockGraph |
A block (with in edges and out edges) that contains other blocks
|
BlockIfElse |
A standard if/else control flow block
possible multiple incoming edges
1 outgoing edge - going to the common out block rejoining the 2 control flows
1 "condition" block with exactly 2 outputs
1 "true" block representing the control flow if the condition is true
1 "false" block representing the control flow if the condition is false
|
BlockIfGoto |
Block representing an if () goto control flow
possible multiple incoming edges
1 output edge if the condition is false
1 (implied) output edge representing the unstructured control flow if the condition is true
1 block evaluating the condition
|
BlockInfLoop |
Block representing an infinite loop
possible multiple incoming edges
no outgoing edges
1 (implied) outgoing edge representing loop to the top control flow
1 interior block representing the body of the loop
|
BlockList |
Block representing a sequence of other blocks
possible multiple incoming edges
1 outgoing edge
1 or more interior blocks that are executed in sequence
|
BlockMap |
|
BlockMultiGoto |
A block representing a 2-or-more control flow branchpoint
possible multiple incoming edges
1 or more outgoing edges (as in switch control flow)
2 or more (implied) outgoing edges representing unstructured branch destinations (switch case with goto statement)
1 interior block representing the decision block of the switch
|
BlockProperIf |
A block containing condition control flow
possible multiple incoming edges
1 outgoing edge representing rejoined control flow
2 interior blocks
one "condition" block representing the decision point on whether to take the conditional flow
one "body" block representing the conditional flow that may be followed or may be skipped
|
BlockSwitch |
A block representing a switch construction
possible multiple incoming edges
1 outgoing edge representing all the interior control flow cases coming back together
1 interior block representing the decision point with outgoing edges to the different cases (or the exit block)
multiple interior blocks for each "case" of the switch
cases must exactly 1 outgoing edge to the common exit block or have no outgoing edges
|
BlockWhileDo |
Block representing a while-do (exit from the top) loop construction
possible multiple incoming edges
1 outgoing exit edge
1 (implied) loop edge
1 interior block representing the top of the loop and the decision point for staying in the loop
1 interior block representing the body of the loop, which always exits back to the top of the loop
|
DataTypeSymbol |
|
DynamicHash |
A hash utility to uniquely identify a temporary Varnode in data-flow
Most Varnodes can be identified within the data-flow graph by their storage address
and the address of the PcodeOp that defines them.
|
DynamicSymbol |
Decompiler symbol whose references are encoded as dynamic hashes into the PcodeSyntaxTree
|
DynamicSymbol.Entry |
|
EquateSymbol |
|
FunctionPrototype |
High-level prototype of a function based on Varnodes, describing the inputs and outputs
of this function.
|
HighConstant |
A constant that has been given a datatype (like a constant that is really a pointer)
|
HighFunction |
High-level abstraction associated with a low level function made up of assembly instructions.
|
HighFunctionDBUtil |
HighFunctionDBUtil provides various methods for updating the state of a
function contained within a program database.
|
HighGlobal |
All references (per function) to a single global variable
|
HighLocal |
|
HighOther |
Other forms of variable, these are typically compiler infrastructure
like the stackpointer or saved registers
|
HighParam |
High-level function parameter
|
HighParamID |
High-level abstraction associated with a low level function made up of assembly instructions.
|
HighSymbol |
|
HighVariable |
A High-level variable (as in a high-level language like C/C++)
built out of Varnodes (low-level variables).
|
JumpTable |
JumpTable found as part of the decompilation of a function
|
ListLinked<T> |
A better linked list implementation than provided by java.util.
|
LocalSymbolMap |
Local variables visible to a function.
|
MappedSymbol |
|
ParamMeasure |
ParamMeasure
|
PcodeBlock |
Blocks of PcodeOps
|
PcodeBlock.BlockEdge |
|
PcodeBlockBasic |
A basic block constructed from PcodeOps
|
PcodeDataTypeManager |
Class for making Ghidra DataTypes suitable for use with pcode
|
PcodeOp |
Pcode Op describes a generic machine operation.
|
PcodeOpAST |
Some extra things attached to PcodeOp for ease of walking the syntax tree
|
PcodeOpBank |
Container for PcodeOpAST's
|
PcodeSyntaxTree |
Varnodes and PcodeOps in a coherent graph structure
|
SequenceNumber |
Basically a unique address for a PcodeOp
It is unique, maintains original assembly instruction address, and is comparable
within a basic block
|
Varnode |
Rawest possible Varnode.
|
VarnodeAST |
This type of Varnode is a node in an Abstract Syntax Tree
It keeps track of its defining PcodeOp (in-edge) and PcodeOps which use it (out-edges)
|
VarnodeBank |
Container class for VarnodeAST's
|
VarnodeTranslator |
|