Header menu logo B2R2

ICFGBuildingStrategy<'FnCtx, 'GlCtx> Type

A strategy that defines how CFGActions are handled to build a function. This interface will be accessed in parallel by multiple threads, so every operation should be thread-safe. Note that CFGBuildingContext as well as 'FnCtx are only accessed by a single thread, though.

Instance members

Instance member Description

this.ActionPrioritizer

Full Usage: this.ActionPrioritizer

Returns: IPrioritizable
Modifiers: abstract

Return the prioritizer to use for the CFG actions.

Returns: IPrioritizable

this.AllowBBLOverlap

Full Usage: this.AllowBBLOverlap

Returns: bool
Modifiers: abstract

Whether to allow basic block overlap or not while building a CFG.

Returns: bool

this.FindCandidates

Full Usage: this.FindCandidates

Parameters:
Returns: (Addr * ArchOperationMode)[]
Modifiers: abstract

This is a callback that is called when a recovery mission starts. It finds a list of candidate functions to analyze based on the given list of function builders.

arg0 : ICFGBuildable<'FnCtx, 'GlCtx>[]
Returns: (Addr * ArchOperationMode)[]

this.OnAction

Full Usage: this.OnAction

Parameters:
Returns: CFGResult
Modifiers: abstract

This is a callback that is called for every CFGAction generated for a function. Each action may discover a new basic block, add a new edge, etc. This function returns a CFGResult that indicates whether the function building should continue, postpone, or exit with an error.

arg0 : CFGBuildingContext<'FnCtx, 'GlCtx>
arg1 : CFGActionQueue
arg2 : CFGAction
Returns: CFGResult

this.OnCyclicDependency

Full Usage: this.OnCyclicDependency

Parameters:
Returns: ICFGBuildable<'FnCtx, 'GlCtx>
Modifiers: abstract

This is a callback that is called when a cyclic dependency is detected from the TaskManager. The array of dependent functions is passed as an argument, and this function returns the function builder that should be built first. When the given array is empty, this function will raise an exception.

arg0 : (Addr * ICFGBuildable<'FnCtx, 'GlCtx>)[]
Returns: ICFGBuildable<'FnCtx, 'GlCtx>

this.OnFinish

Full Usage: this.OnFinish

Parameters:
Returns: CFGResult
Modifiers: abstract

This is a callback that is called when all CFGActions are processed, i.e., when CFGActionQueue is empty.

arg0 : CFGBuildingContext<'FnCtx, 'GlCtx>
Returns: CFGResult

Type something to start searching.