A multi-architecture binary analysis toolkit, with the ability to perform dynamic symbolic execution and various static analyses on binaries
Project description
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.io
Project repository: https://github.com/angr/angr
Documentation: https://docs.angr.io
API Documentation: https://api.angr.io/en/latest/
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
- 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file angr-9.2.129.tar.gz
.
File metadata
- Download URL: angr-9.2.129.tar.gz
- Upload date:
- Size: 3.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8528148482908e44076d6610e675948fcad6da549d2bf0120fd8103143cbdeb |
|
MD5 | fd6832f0f12080af547f3a837c249877 |
|
BLAKE2b-256 | 99795a3f4e101458d6f4d5880e6394ac224494e3a24c5af7865ddcd2414811c7 |
Provenance
The following attestation bundles were made for angr-9.2.129.tar.gz
:
Publisher:
angr-release.yml
on angr/ci-settings
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
angr-9.2.129.tar.gz
- Subject digest:
c8528148482908e44076d6610e675948fcad6da549d2bf0120fd8103143cbdeb
- Sigstore transparency entry: 149944462
- Sigstore integration time:
- Predicate type:
File details
Details for the file angr-9.2.129-py3-none-win_amd64.whl
.
File metadata
- Download URL: angr-9.2.129-py3-none-win_amd64.whl
- Upload date:
- Size: 9.2 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c936db6115f6dcb7df58bd5706a147161940749087c43089a2abec1d25a3ef9d |
|
MD5 | d10381c3c39c73bbbf5d038ec6c78e53 |
|
BLAKE2b-256 | f15776a0b8ed58199026a57e80e6a9f0afc5f6d4eb160bad36e997b0979d5a62 |
Provenance
The following attestation bundles were made for angr-9.2.129-py3-none-win_amd64.whl
:
Publisher:
angr-release.yml
on angr/ci-settings
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
angr-9.2.129-py3-none-win_amd64.whl
- Subject digest:
c936db6115f6dcb7df58bd5706a147161940749087c43089a2abec1d25a3ef9d
- Sigstore transparency entry: 149944483
- Sigstore integration time:
- Predicate type:
File details
Details for the file angr-9.2.129-py3-none-manylinux2014_x86_64.whl
.
File metadata
- Download URL: angr-9.2.129-py3-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 11.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e75a1842406eb92621e8107d84e8109757e827ef2d66af523bac511c7b3842f |
|
MD5 | 607629b37f07bf9fb9691a71ad82e4c5 |
|
BLAKE2b-256 | 3a06e22b9018adccc96a62739ece1221899686dc7c3504c74a71becef7e12a09 |
Provenance
The following attestation bundles were made for angr-9.2.129-py3-none-manylinux2014_x86_64.whl
:
Publisher:
angr-release.yml
on angr/ci-settings
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
angr-9.2.129-py3-none-manylinux2014_x86_64.whl
- Subject digest:
6e75a1842406eb92621e8107d84e8109757e827ef2d66af523bac511c7b3842f
- Sigstore transparency entry: 149944486
- Sigstore integration time:
- Predicate type:
File details
Details for the file angr-9.2.129-py3-none-manylinux2014_aarch64.whl
.
File metadata
- Download URL: angr-9.2.129-py3-none-manylinux2014_aarch64.whl
- Upload date:
- Size: 11.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73f7a16ed3be8c991904b52fe579eb92bf6228bfde15a1d7e1ba8ab7d1af75f6 |
|
MD5 | 2402762349010bad710a7364ae921a80 |
|
BLAKE2b-256 | 17d688f083d70002aece2f94aa4873657212fd7cb97e6d6e50c31c04928a7556 |
Provenance
The following attestation bundles were made for angr-9.2.129-py3-none-manylinux2014_aarch64.whl
:
Publisher:
angr-release.yml
on angr/ci-settings
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
angr-9.2.129-py3-none-manylinux2014_aarch64.whl
- Subject digest:
73f7a16ed3be8c991904b52fe579eb92bf6228bfde15a1d7e1ba8ab7d1af75f6
- Sigstore transparency entry: 149944495
- Sigstore integration time:
- Predicate type:
File details
Details for the file angr-9.2.129-py3-none-macosx_11_0_arm64.whl
.
File metadata
- Download URL: angr-9.2.129-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 8.7 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecc7765ecc10a4667e7bb38f2d744f05a0a0d762e98c4c565323badc4fa0f700 |
|
MD5 | 2883e1bd517a82334f53c6f69ada873e |
|
BLAKE2b-256 | 1f9d88ee139213e15f92807faa424c8f07dc9144043b2bc78d7276daca9d3904 |
Provenance
The following attestation bundles were made for angr-9.2.129-py3-none-macosx_11_0_arm64.whl
:
Publisher:
angr-release.yml
on angr/ci-settings
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
angr-9.2.129-py3-none-macosx_11_0_arm64.whl
- Subject digest:
ecc7765ecc10a4667e7bb38f2d744f05a0a0d762e98c4c565323badc4fa0f700
- Sigstore transparency entry: 149944475
- Sigstore integration time:
- Predicate type:
File details
Details for the file angr-9.2.129-py3-none-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: angr-9.2.129-py3-none-macosx_10_9_x86_64.whl
- Upload date:
- Size: 9.7 MB
- Tags: Python 3, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed3128e2c5fc5250269cf1facb4cff2f8e1ad2bcd101a9cfbad0403766bf4043 |
|
MD5 | d49e4487a4c40779661f5d0675814585 |
|
BLAKE2b-256 | 2bd5fdd4762cf31a50597cfa6195409ed805f417127c90b48f91d239e977a2cb |
Provenance
The following attestation bundles were made for angr-9.2.129-py3-none-macosx_10_9_x86_64.whl
:
Publisher:
angr-release.yml
on angr/ci-settings
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
angr-9.2.129-py3-none-macosx_10_9_x86_64.whl
- Subject digest:
ed3128e2c5fc5250269cf1facb4cff2f8e1ad2bcd101a9cfbad0403766bf4043
- Sigstore transparency entry: 149944478
- Sigstore integration time:
- Predicate type: