No description
Find a file
2026-05-20 10:25:46 +00:00
.github ci: bump taiki-e/install-action from 2.77.6 to 2.79.1 (#6406) 2026-05-19 06:44:05 -07:00
angr Update version to 9.2.216 2026-05-20 10:25:46 +00:00
corpus_tests Remove many sources of decompiler nondeterminism (#5486) 2025-05-20 00:21:16 -07:00
docs Refactor inspect attributes to use dataclass (#6388) 2026-05-11 14:31:00 -07:00
native unicorn: Add padding to the lifting buffer in thumb mode (#6412) 2026-05-19 13:10:58 -07:00
tests CFGFast: iterate func.block_addrs for drop_bad_functions cleanup (works for spilled funcs) (#6419) 2026-05-20 02:52:13 -07:00
.dockerignore Oxidizer: Rust pseudocode generation (#6283) 2026-05-19 07:15:07 -07:00
.git-blame-ignore-revs .git-blame-ignore-revs: Fix reference 2025-11-26 17:44:09 -07:00
.gitignore Oxidizer: Rust pseudocode generation (#6283) 2026-05-19 07:15:07 -07:00
.pre-commit-config.yaml [pre-commit.ci] pre-commit autoupdate (#6403) 2026-05-18 11:31:50 -07:00
.readthedocs.yml docs: Use integrated RTD rust support (#6382) 2026-05-01 23:08:38 -07:00
Cargo.lock Fuzzer infrastructure: engine caching, custom breakpoints, icicle bump (#6346) 2026-04-15 15:22:31 -07:00
Cargo.toml Update to Rust 1.88 (#5561) 2025-06-26 21:00:49 -07:00
COPYRIGHT Update LICENSE and COPYRIGHT. (#5376) 2025-03-27 23:58:21 -07:00
LICENSE Update LICENSE and COPYRIGHT. (#5376) 2025-03-27 23:58:21 -07:00
MANIFEST.in Definitions: JSONify the data; Create protos on-demand. (#5640) 2025-09-08 17:26:31 -07:00
pyproject.toml Update version to 9.2.216 2026-05-20 10:25:46 +00:00
README.md README: Update some links 2025-10-13 13:57:08 -07:00
rust-toolchain.toml Update rust-toolchain.toml to 1.94 (#6289) 2026-03-27 09:54:54 -07:00
SECURITY.md Draft security and reporting advisory (#3072) 2022-01-09 19:49:40 -07:00
setup.py Remove linux platform tag override in setup.py (#5596) 2025-07-09 17:41:36 -07:00

angr

Latest Release Python Version PyPI Statistics License

angr is a platform-agnostic binary analysis framework. It is brought to you by the Computer Security Lab at UC Santa Barbara, SEFCOM at Arizona State University, their associated CTF team, Shellphish, the open source community, and @rhelmot.

Homepage: https://angr.io

Project repository: https://github.com/angr/angr

Documentation: https://docs.angr.io

API Documentation: https://docs.angr.io/en/latest/api.html

What is angr?

angr is a suite of Python 3 libraries that let you load a binary and do a lot of cool things to it:

  • Disassembly and intermediate-representation lifting
  • Program instrumentation
  • Symbolic execution
  • Control-flow analysis
  • Data-dependency analysis
  • Value-set analysis (VSA)
  • Decompilation

The most common angr operation is loading a binary: p = angr.Project('/bin/bash') If you do this in an enhanced REPL like IPython, you can use tab-autocomplete to browse the top-level-accessible methods and their docstrings.

The short version of "how to install angr" is mkvirtualenv --python=$(which python3) angr && python -m pip install angr.

Example

angr does a lot of binary analysis stuff. To get you started, here's a simple example of using symbolic execution to get a flag in a CTF challenge.

import angr

project = angr.Project("angr-doc/examples/defcamp_r100/r100", auto_load_libs=False)

@project.hook(0x400844)
def print_flag(state):
    print("FLAG SHOULD BE:", state.posix.dumps(0))
    project.terminate_execution()

project.execute()

Quick Start