Header menu logo B2R2

B2R2.MiddleEnd.ControlFlowAnalysis.Strategies Namespace

Type/Module Description

CFGAnalysisEnv<'FnCtx, 'GlCtx>

The environment for a CFG-based analysis.

CFGRecovery

Base strategy for building a CFG without any customizable context.

CFGRecovery<'FnCtx, 'GlCtx>

Base strategy for building a CFG.

CondAwareNoretAnalysis (Module)

CondAwareNoretAnalysis (Type)

This is a non-returning function identification strategy that can check conditionally non-returning functions. We currently support only those simple patterns that are handled by compilers, but we may have to extend this as the compilers evolve.

DummyContext

Dummy context.

EVMCFGRecovery

EVMExeCtx

EVMFunctionSummarizer<'FnCtx, 'GlCtx>

Summarizes a function in the EVM context. Thanks to the powerful expressiveness of B2R2's IR, we can easily express a function's abstraction, including its unwinding behavior and return behavior.

EVMFuncUserContext

User-defined context for EVM functions. EVMFunctionSummarizer uses this information to summarize the function, especially the return target.

FunctionIdentification<'FnCtx, 'GlCtx>

Base strategy for identifying function entry points.

FunctionSummarizer<'FnCtx, 'GlCtx>

Base class for summarizing a function in a lightweight manner. One can extend this class to implement a more sophisticated function summarizer.

ICFGAnalysis

ICFGAnalysis<'Fn>

The interface for a CFG-based analysis, which is performed on a CFG. This interface wraps an analysis function, which can be unwrapped and executed later.

ICFGRecovery<'UsrCtx, 'GlbCtx>

Represents the main interface for CFG recovery strategies.

IGraphCallback<'FnCtx, 'GlCtx>

Represents a callback interface for graph operations in CFG recovery.

IIndirectJmpAnalyzable<'FnCtx, 'GlCtx>

Handles the analysis of indirect jumps and conditional jumps during CFG recovery.

ISyscallAnalyzable

The interface for syscall stub analysis. This is to know whether the given syscall instruction is an exit syscall or not. Since this analysis runs in the middle of the CFG building, it should be solely based on the LowUIRCFG, not the SSACFG.

JmpTableAnalysis<'FnCtx, 'GlCtx>

Base class for analyzing jump tables.

SSALifter

Perform stack pointer propgation analysis on the current SSACFG. This analysis performs mainly two tasks: (1) identify stack variables and promote the SSACFG, and (2) calculate the stack frame size of the function.

SyscallAnalysis

Basic syscall analysis that only analyzes a single basic block that contains the syscall instruction.

Type something to start searching.