Available Analyses
angr’s analysis framework is built around theAnalysesHub, which provides access to all registered analyses through the project.analyses interface.
Control Flow Analysis
CFGFast
Fast static control-flow graph recovery
CFGEmulated
Dynamic CFG recovery through symbolic execution
Data Flow Analysis
DDG
Data Dependence Graph analysis
VFG
Value-Flow Graph with abstract interpretation
Program Understanding
Decompiler
Decompile binary code to pseudocode
Variable Recovery
Identify and recover program variables
Identifier
Identify common library functions
Analysis Framework
All analyses in angr inherit from the baseAnalysis class and are registered with the framework:
Analysis Categories
Static Analyses
Static analyses examine the binary without executing it:- CFGFast: Fast control-flow recovery
- Variable Recovery: Identify stack and register variables
- Identifier: Match against known library functions
Dynamic Analyses
Dynamic analyses use symbolic or concrete execution:- CFGEmulated: CFG recovery through symbolic execution
- VFG: Value-flow analysis with abstract interpretation
- DDG: Data dependence tracking during execution
Hybrid Analyses
Combining multiple techniques:- Decompiler: Uses CFG, variable recovery, reaching definitions, and structuring
- Reaching Definitions: Data-flow analysis for definition-use chains
Common Patterns
Running an Analysis
Using Knowledge Base
Many analyses store results in the knowledge base:Analysis Options
Most analyses accept common parameters:
fail_fast: Stop on first error (default: False)- Progress callbacks for long-running analyses
- Knowledge base selection:
kb=custom_kb
Forward Analysis Framework
Many analyses inherit fromForwardAnalysis, which provides:
- Job-based worklist algorithm
- State merging and widening
- Context-sensitive analysis
- Progress tracking
Next Steps
CFG Recovery
Learn about control-flow graph analysis
Decompilation
Decompile binaries to readable code
Data Flow
Track data dependencies in programs
Variable Recovery
Identify program variables and types