decompiler
1.0.0
|
Core decompilation actions which are indepedent of any particular architecture. More...
Classes | |
class | ActionStart |
Gather raw p-code for a function. More... | |
class | ActionStop |
Do any post-processing after decompilation. More... | |
class | ActionStartCleanUp |
Start clean up after main transform phase. More... | |
class | ActionStartTypes |
Allow type recovery to start happening. More... | |
class | ActionStackPtrFlow |
Analyze change to the stack pointer across sub-function calls. More... | |
class | ActionSegmentize |
Make sure pointers into segmented spaces have the correct form. More... | |
class | ActionForceGoto |
Apply any overridden forced gotos. More... | |
class | ActionMultiCse |
Perform Common Sub-expression Elimination on CPUI_MULTIEQUAL ops. More... | |
class | ActionShadowVar |
Check for one CPUI_MULTIEQUAL input set defining more than one Varnode. More... | |
class | ActionConstantPtr |
Check for constants, with pointer type, that correspond to global symbols. More... | |
class | ActionDeindirect |
Eliminate locally constant indirect calls. More... | |
class | ActionVarnodeProps |
Transform read-only variables to constants. More... | |
class | ActionDirectWrite |
Mark Varnodes built out of legal parameters. More... | |
class | ActionConstbase |
Search for input Varnodes that have been officially provided constant values. More... | |
class | ActionSpacebase |
Mark Varnode objects that hold stack-pointer values and set-up special data-type. More... | |
class | ActionHeritage |
Build Static Single Assignment (SSA) representation for function. More... | |
class | ActionNonzeroMask |
Calculate the non-zero mask property on all Varnode objects. More... | |
class | ActionSetCasts |
Fill-in CPUI_CAST p-code ops as required by the casting strategy. More... | |
class | ActionAssignHigh |
Assign initial high-level HighVariable objects to each Varnode. More... | |
class | ActionMarkIndirectOnly |
Mark illegal Varnode inputs used only in CPUI_INDIRECT ops. More... | |
class | ActionMergeRequired |
Make required Varnode merges as dictated by CPUI_MULTIEQUAL, CPUI_INDIRECT, and addrtied property. More... | |
class | ActionMergeAdjacent |
Try to merge an op's input Varnode to its output, if they are at the same storage location. More... | |
class | ActionMergeCopy |
Try to merge the input and output Varnodes of a CPUI_COPY op. More... | |
class | ActionMergeType |
Try to merge Varnodes of the same type (if they don't hold different values at the same time) More... | |
class | ActionMarkExplicit |
Find explicit Varnodes: Varnodes that have an explicit token representing them in the output. More... | |
struct | ActionMarkExplicit::OpStackElement |
This class holds a single entry in a stack used to traverse Varnode expressions. More... | |
class | ActionMarkImplied |
Mark all the implied Varnode objects, which will have no explicit token in the output. More... | |
struct | ActionMarkImplied::DescTreeElement |
This class holds a single entry in a stack used to forward traverse Varnode expressions. More... | |
class | ActionNameVars |
Choose names for all high-level variables (HighVariables) More... | |
struct | ActionNameVars::OpRecommend |
This class is a record in a database used to store and lookup potential names. More... | |
class | ActionUnreachable |
Remove unreachable blocks. More... | |
class | ActionDoNothing |
Remove blocks that do nothing. More... | |
class | ActionRedundBranch |
Get rid of redundant branches: duplicate edges between the same input and output block. More... | |
class | ActionDeterminedBranch |
Remove conditional branches if the condition is constant. More... | |
class | ActionDeadCode |
Dead code removal. Eliminate dead p-code ops. More... | |
class | ActionConditionalConst |
Propagate conditional constants. More... | |
class | ActionSwitchNorm |
Normalize jump-table construction. More... | |
class | ActionNormalizeSetup |
Prepare function prototypes for "normalize" simplification. More... | |
class | ActionPrototypeTypes |
Lay down locked input and output data-type information. More... | |
class | ActionDefaultParams |
Find a prototype for each sub-function. More... | |
class | ActionExtraPopSetup |
Define formal link between stack-pointer values before and after sub-function calls. More... | |
class | ActionFuncLink |
Prepare for data-flow analysis of function parameters. More... | |
class | ActionFuncLinkOutOnly |
Prepare for data-flow analysis of function parameters, when recovery isn't required. More... | |
class | ActionParamDouble |
Deal with situations that look like double precision parameters. More... | |
class | ActionActiveParam |
Determine active parameters to sub-functions. More... | |
class | ActionActiveReturn |
Determine which sub-functions have active output Varnodes. More... | |
class | ActionReturnRecovery |
Determine data-flow holding the return value of the function. More... | |
class | ActionRestrictLocal |
Restrict possible range of local variables. More... | |
class | ActionLikelyTrash |
Get rid of registers with trash values. More... | |
class | ActionRestructureVarnode |
Create symbols that map out the local stack-frame for the function. More... | |
class | ActionRestructureHigh |
Create symbols that map out the local stack-frame for the function. More... | |
class | ActionMapGlobals |
Create symbols for any discovered global variables in the function. More... | |
class | ActionInputPrototype |
Calculate the prototype for the function. More... | |
class | ActionOutputPrototype |
Set the (already) recovered output data-type as a formal part of the prototype. More... | |
class | ActionUnjustifiedParams |
Adjust improperly justified parameters. More... | |
class | ActionInferTypes |
Infer and propagate data-types. More... | |
class | ActionHideShadow |
Locate shadow Varnodes and adjust them so they are hidden. More... | |
class | ActionCopyMarker |
Mark COPY operations between Varnodes representing the object as non-printing. More... | |
class | ActionDynamicMapping |
Attach dynamically mapped symbols to Varnodes in time for data-type propagation. More... | |
class | ActionDynamicSymbols |
Make final attachments of dynamically mapped symbols to Varnodes. More... | |
class | ActionPrototypeWarnings |
Add warnings for prototypes that aren't modeled properly. More... | |
class | PropagationState |
A class that holds a data-type traversal state during type propagation. More... | |
class | PcodeOpEdge |
Class representing a term in an additive expression. More... | |
class | TermOrder |
A class for ordering Varnode terms in an additive expression. More... | |
Functions | |
void | universal_action (Architecture *conf) |
The generic decompilation action. More... | |
void | build_defaultactions (ActionDatabase &allacts) |
Build the default actions. More... | |
Core decompilation actions which are indepedent of any particular architecture.
These are the internal actions. They are guaranteed to not to invalidate covers. (if they do they must check the covers themselves)
void build_defaultactions | ( | ActionDatabase & | allacts | ) |
Build the default actions.
Build the default root Actions: decompile, jumptable, normalize, paramid, register, firstpass
allacts | is the database that will hold the root Actions |
References ActionDatabase::setGroup().
Referenced by universal_action().
void universal_action | ( | Architecture * | conf | ) |
The generic decompilation action.
Construct the universal Action that contains all possible components
conf | is the Architecture that will use the Action |
References ActionMarkExplicit::ActionMarkExplicit(), ActionGroup::addAction(), ActionPool::addRule(), Architecture::allacts, build_defaultactions(), Architecture::extra_pool_rules, AddrSpaceManager::getStackSpace(), ActionDatabase::registerUniversal(), Action::rule_onceperfunc, and Action::rule_repeatapply.
Referenced by Architecture::buildAction().