angr 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…
angr




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.
Project Links
Homepage: https://angr.ioProject 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
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.
python
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
- Install Instructions
- Documentation as HTML and sources in the angr Github repository
- Dive right in: top-level-accessible methods
- Examples using angr to solve CTF challenges.
- API Reference
- awesome-angr repo
Members
-
angr ★ PINNED
A powerful and user-friendly binary analysis platform!
Python ★ 9.0k 25m agoExplain → -
angr-management ★ PINNED
The official angr GUI.
Python ★ 1.2k 4h agoExplain → -
srcdump ★ PINNED
Dumping source code from your binaries like objdump
Rust ★ 18 1mo agoExplain → -
cle ★ PINNED
CLE Loads Everything (at least, many binary formats!)
Python ★ 483 1d agoExplain → -
pyvex ★ PINNED
Python bindings for Valgrind's VEX IR.
Python ★ 376 1d agoExplain → -
angr-examples ★ PINNED
Example scripts using angr
Python ★ 50 1mo agoExplain → -
angrop
No description.
Python ★ 850 1mo agoExplain → -
angr-doc ▣
Documentation for the angr suite
TeX ★ 848 3y agoExplain → -
rex
Shellphish's automated exploitation engine, originally created for the Cyber Grand Challenge.
Python ★ 654 1mo agoExplain → -
claripy
An abstraction layer for constraint solvers.
Python ★ 334 4d agoExplain → -
patcherex
Shellphish's automated patching engine, originally created for the Cyber Grand Challenge.
Python ★ 265 3d agoExplain → -
heaphopper
HeapHopper is a bounded model checking framework for Heap-implementations
Python ★ 228 1mo agoExplain → -
pypcode
Python bindings to Ghidra's SLEIGH library for disassembly and lifting to P-Code IR
C++ ★ 214 4d agoExplain → -
phuzzer
The new phuzzing framework!
Python ★ 164 2y agoExplain → -
angr-dev
Some helper scripts to set up an environment for angr development.
Shell ★ 124 8d agoExplain → -
vex
A patched version of VEX to work with PyVEX.
C ★ 114 1d agoExplain → -
archinfo
Classes with architecture-specific information useful to other projects.
Python ★ 97 22h agoExplain → -
tracer
Utilities for generating dynamic traces
Python ★ 94 1y agoExplain → -
simuvex ▣
[DEPRECATED] A symbolic execution engine for the VEX IR
Python ★ 80 7y agoExplain → -
archr
Target-centric program analysis.
Python ★ 76 2mo agoExplain → -
angr-platforms
A collection of extensions to angr to handle new platforms
Python ★ 69 1mo agoExplain → -
binaries
A repository with binaries for angr tests and examples.
C ★ 61 6h agoExplain → -
angr-z3 ⑂ ▣
The Z3 Theorem Prover - repository for staging python distributions
C++ ★ 52 7y agoExplain → -
acsac-course ▣
No description.
Python ★ 50 5y agoExplain → -
fidget ▣
A tool to add simple inline patches to a binary to rearrange its stack frames, and other things!
Python ★ 46 4y agoExplain → -
pysoot
Python bindings for Shimple/Jimple IR from Soot.
Python ★ 43 4d agoExplain → -
angr-targets ▣
This repository contains the currently implemented angr concrete targets.
Python ★ 34 2y agoExplain → -
ailment ▣
AIL: The angr Intermediate Language.
Python ★ 33 1y agoExplain → -
secdev-course ▣
No description.
Python ★ 20 9y agoExplain → -
unicorn ⑂ ▣
Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, X86)
C ★ 13 7y agoExplain → -
pydemumble
A Python wrapper library for demumble; demumble is a tool to demangle C++, Rust, and Swift symbol names.
Python ★ 10 24d agoExplain → -
identifier ▣
[DEPRECATED] Using angr and prebuilt testcases to identify functions in statically-linked binaries.
★ 9 9y agoExplain → -
wheels ▣
Wheels for speeding up builds and helping people out.
★ 7 6y agoExplain → -
capstone ⑂ ▣
Capstone disassembly/disassembler framework: Core (Arm, Arm64, M68K, Mips, PPC, Sparc, SystemZ, X86, X86_64, XCore) + bindings (Python, Java, Ocaml)
POV-Ray SDL ★ 7 9y agoExplain → -
flirt_signatures
No description.
★ 5 3mo agoExplain → -
angr.github.io ▣
angry website
HTML ★ 5 4y agoExplain → -
nixpkgs ▣
angr related nixpkgs
Nix ★ 5 5y agoExplain → -
angr-megatest ⑂
large-scale testing of cfg and decompiler
Python ★ 4 5y agoExplain → -
ci-settings
Docker image and azure templates for angr's CI
Python ★ 2 11d agoExplain → -
dec-snapshots
No description.
★ 2 5h agoExplain → -
pyqodeng ⑂
Our fork of pyQode.core, used as part of angr management
Python ★ 2 6mo agoExplain → -
angr.io
angr.io website source
HTML ★ 2 6mo agoExplain → -
libdft64 ⑂
libdft for Intel Pin 3.x and 64 bit platform. (Dynamic taint tracking, taint analysis)
C++ ★ 2 5y agoExplain → -
pwntools ⑂ ▣
Fork of pwntools previously used to work around dependency compatibiliuty issues. Please use upstream pwntools.
Python ★ 2 5y agoExplain → -
syscall-agent
No description.
C ★ 2 5y agoExplain → -
library_docs
No description.
★ 1 5y agoExplain → -
leakmore
No description.
Python ★ 1 5mo agoExplain → -
arbiter ⑂
No description.
★ 1 3y agoExplain → -
azure-runners ▣
Docker stuff for self-hosted azure runners
Shell ★ 1 7y agoExplain → -
angr-docker-image
Configuration to automatically publish a docker image for angr
Dockerfile ★ 0 9mo agoExplain → -
angr-data
No description.
Python ★ 0 1mo agoExplain → -
angr.io-next
angr's new website
Astro ★ 0 1mo agoExplain → -
icicle-emu ⑂
Core emulator components for Icicle
Rust ★ 0 2mo agoExplain → -
wheels-archive
A place to archive old wheels no longer on PyPI
Python ★ 0 3mo agoExplain → -
qtconsole ⑂
Jupyter Qt Console
★ 0 2y agoExplain →
No repos match these filters.