Skip to main content

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.

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.

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:
import angr

p = angr.Project('/bin/bash')
From there, you can use tab-autocomplete in enhanced REPLs like IPython to explore the available methods and their documentation.

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.