CFGAction Type
Our CFG reconstruction algorithm is performed by consuming actions (CFGAction). Each action has a priority, which is used to determine the order of the actions to run.
Union cases
| Union case |
Description
|
Full Usage:
EndGapAnalysis
|
Report the end of the gap analysis. |
|
Report the recovery result of a jump table entry. This will always be followed by a `StartTblRec` action to denote the end of the recovery.
|
|
Add more reachable edges to the initial CFG using the new program points.
|
Full Usage:
InitiateCFG
|
Build an initial CFG that is reachable from the given function start address. |
Full Usage:
MakeCall(callSite, calleeAddr, CalleeInfo)
Parameters:
CallSite
calleeAddr : Addr
Item3 : CalleeInfo
|
Create an abstract call node and connect it to the caller and fallthrough nodes when necessary.
|
|
Create an abstract call node for an indirect call and connect it to the caller and the fallthrough node.
|
|
|
|
Create an abstract syscall node and connect it to the caller and fallthrough nodes when necessary.
|
Full Usage:
MakeTlCall(callSite, calleeAddr, CalleeInfo)
Parameters:
CallSite
calleeAddr : Addr
Item3 : CalleeInfo
|
Create an abstract tail-call node and connect it to the caller and fallthrough nodes when necessary.
|
Full Usage:
ResumeAnalysis(pp, callbackAction)
Parameters:
ProgramPoint
callbackAction : CFGAction
|
Can be used to wait for an event to happen. It depends on the usage in a specific strategy.
|
|
Expand a CFG from the given address for gap completion.
|
Full Usage:
StartTblRec(tbl, idx, src, dst)
Parameters:
JmpTableInfo
idx : int
src : Addr
dst : Addr
|
Start recovering a jump table entry (only single entry at a time).
|
Full Usage:
UpdateCallEdges(calleeAddr, CalleeInfo)
Parameters:
Addr
Item2 : CalleeInfo
|
Update the call edge(s) for the callee's abstract vertex. This action is used to inform that the callee's information (e.g., non-returning status) has been changed, and the call edges should be updated accordingly.
|
|
Wait for the callee to be resolved.
|
Instance members
| Instance member |
Description
|
Full Usage:
this.IsEndGapAnalysis
Returns: bool
|
|
Full Usage:
this.IsEndTblRec
Returns: bool
|
|
Full Usage:
this.IsExpandCFG
Returns: bool
|
|
Full Usage:
this.IsInitiateCFG
Returns: bool
|
|
Full Usage:
this.IsMakeCall
Returns: bool
|
|
Full Usage:
this.IsMakeIndCall
Returns: bool
|
|
Full Usage:
this.IsMakeIndEdges
Returns: bool
|
|
Full Usage:
this.IsMakeSyscall
Returns: bool
|
|
Full Usage:
this.IsMakeTlCall
Returns: bool
|
|
Full Usage:
this.IsResumeAnalysis
Returns: bool
|
|
Full Usage:
this.IsStartGapAnalysis
Returns: bool
|
|
Full Usage:
this.IsStartTblRec
Returns: bool
|
|
Full Usage:
this.IsUpdateCallEdges
Returns: bool
|
|
Full Usage:
this.IsWaitForCallee
Returns: bool
|
|
|
B2R2