angr is a suite of Python libraries that let you load a binary and perform sophisticated analysis on it. Built by the Computer Security Lab at UC Santa Barbara, SEFCOM at Arizona State University, and the open source community, angr brings academic-grade binary analysis techniques to security researchers and CTF players.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/angr/angr/llms.txt
Use this file to discover all available pages before exploring further.
What can you do with angr?
angr provides a comprehensive toolkit for binary analysis:Symbolic Execution
Explore multiple execution paths simultaneously to discover program behavior and find inputs that trigger specific conditions.
Control-Flow Analysis
Generate control-flow graphs (CFGs) to understand program structure and execution flow across multiple architectures.
Decompilation
Convert binary code back into readable source code with angr’s built-in decompiler.
Multi-Architecture Support
Analyze binaries for x86, ARM, MIPS, PowerPC, and many other architectures with a unified API.
Key capabilities
angr offers a rich set of analysis techniques:- Disassembly and lifting - Convert machine code to intermediate representation (IR)
- Program instrumentation - Hook functions and modify program behavior during execution
- Symbolic execution - Reason about program behavior with symbolic values
- Data-dependency analysis - Track how data flows through a program
- Value-set analysis (VSA) - Determine possible values of variables
- Decompilation - Generate high-level pseudocode from binaries
Getting started
The most common angr operation is loading a binary:Quickstart
Get up and running with angr in minutes
Installation
Detailed installation instructions and troubleshooting
Who uses angr?
angr is used by:- Security researchers for vulnerability discovery and exploit development
- CTF teams (including Shellphish) for solving reverse engineering challenges
- Academics for binary analysis research
- Developers for understanding and testing compiled code
Learn more
angr Documentation
Visit the official angr documentation for comprehensive guides and API references
angr requires Python 3.10 or higher. The framework has fully transitioned to Python 3 to provide the best performance and latest features.