|
decompiler 1.0.0
|
Classes to collect, analyze, and match expressions within p-code data-flow. More...
#include "op.hh"Classes | |
| struct | ghidra::PcodeOpNode |
| An edge in a data-flow path or graph. More... | |
| struct | ghidra::TraverseNode |
| Node for a forward traversal of a Varnode expression. More... | |
| class | ghidra::BooleanMatch |
| Static methods for determining if two boolean expressions are the same or complementary. More... | |
| class | ghidra::BooleanExpressionMatch |
| A helper class for describing the similarity of the boolean condition between 2 CBRANCH operations. More... | |
| class | ghidra::AdditiveEdge |
| Class representing a term in an additive expression. More... | |
| class | ghidra::TermOrder |
| A class for ordering Varnode terms in an additive expression. More... | |
| class | ghidra::AddExpression |
| Class for lightweight matching of two additive expressions. More... | |
| class | ghidra::AddExpression::Term |
| A term in the expression. More... | |
Functions | |
| int4 | ghidra::functionalEqualityLevel (Varnode *vn1, Varnode *vn2, Varnode **res1, Varnode **res2) |
| Try to determine if vn1 and vn2 contain the same value. | |
| bool | ghidra::functionalEquality (Varnode *vn1, Varnode *vn2) |
| Determine if two Varnodes hold the same value. | |
| bool | ghidra::functionalDifference (Varnode *vn1, Varnode *vn2, int4 depth) |
| Return true if vn1 and vn2 are verifiably different values. | |
Classes to collect, analyze, and match expressions within p-code data-flow.
Return true if vn1 and vn2 are verifiably different values.
This is actually a rather speculative test
| vn1 | is the first Varnode to compare |
| vn2 | is the second Varnode |
| depth | is the maximum level to recurse while testing |
Determine if two Varnodes hold the same value.
Only return true if it can be immediately determined they are equivalent
| vn1 | is the first Varnode |
| vn2 | is the second Varnode |
| int4 ghidra::functionalEqualityLevel | ( | Varnode * | vn1, |
| Varnode * | vn2, | ||
| Varnode ** | res1, | ||
| Varnode ** | res2 | ||
| ) |
Try to determine if vn1 and vn2 contain the same value.
Return:
| vn1 | is the first Varnode to compare |
| vn2 | is the second Varnode |
| res1 | is a reference to the first returned Varnode |
| res2 | is a reference to the second returned Varnode |