Skip to main content

A multi-architecture binary analysis toolkit, with the ability to perform dynamic symbolic execution and various static analyses on binaries

Project description

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.

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

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

angr-9.2.126.tar.gz (3.1 MB view details)

Uploaded Source

Built Distributions

angr-9.2.126-py3-none-win_amd64.whl (9.2 MB view details)

Uploaded Python 3 Windows x86-64

angr-9.2.126-py3-none-manylinux2014_x86_64.whl (11.6 MB view details)

Uploaded Python 3

angr-9.2.126-py3-none-manylinux2014_aarch64.whl (11.1 MB view details)

Uploaded Python 3

angr-9.2.126-py3-none-macosx_11_0_arm64.whl (8.7 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

angr-9.2.126-py3-none-macosx_10_9_x86_64.whl (9.7 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

Details for the file angr-9.2.126.tar.gz.

File metadata

  • Download URL: angr-9.2.126.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

Hashes for angr-9.2.126.tar.gz
Algorithm Hash digest
SHA256 a50fa6a6daa62d80e708b998df7a6487721862fe18defccd936aa3942eae5fbe
MD5 ce8534862f1c4e7e738dbf80e67ae9e2
BLAKE2b-256 1268adb1605ae21bab7d9703eacb88e93a050fc9623d3e65a9c06ac8777b2c01

See more details on using hashes here.

File details

Details for the file angr-9.2.126-py3-none-win_amd64.whl.

File metadata

  • Download URL: angr-9.2.126-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

Hashes for angr-9.2.126-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9700ac11d3782bc524a6e47d5ef2320de2e5b0ebb42b319d1117308386eadcdc
MD5 b882cda766eb586f0a79a833aa7a9e26
BLAKE2b-256 2c46dcd51a4b398fa9c79c7d4c32dbed5ce7daf314e7110f35162578302356c1

See more details on using hashes here.

File details

Details for the file angr-9.2.126-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for angr-9.2.126-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 58e578bebd7cadedb06034ee2e998cea416de37f728addd99449f5c80be8134f
MD5 fc5cd727e38156070e0430d8ea24dea2
BLAKE2b-256 30e9abf775e4bfa0572cd604d1f8f03d73fd850efdcaa6afbdfc8ae129d95536

See more details on using hashes here.

File details

Details for the file angr-9.2.126-py3-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for angr-9.2.126-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 85a6a62d52fff0bb6e009f96d38e9242af0c1edf32b110017a986989237249b4
MD5 755ee6d922b7d6a0eab4c3aab47d3a95
BLAKE2b-256 31019498eb3d4c674d06cedc20aa8d91ab3e483de77ccff7ffd063d337d84fad

See more details on using hashes here.

File details

Details for the file angr-9.2.126-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for angr-9.2.126-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e713945b50d197857a021d4f239592cd8ad9c023ebb62fbb28464076901401d9
MD5 530cc383dee369281659429b99810867
BLAKE2b-256 e05908885bb65647e72a9573603eb1cab2e5ecc96942b6f89c1eb686db64aa43

See more details on using hashes here.

File details

Details for the file angr-9.2.126-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for angr-9.2.126-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e3535899dbc8750e0c0471c924687a22ef95227f79b9497a9ef56e9db56de194
MD5 493161efbf127c6ca93632f8c49e26ef
BLAKE2b-256 64cd2c4cf2cc73aca95d45edfeb7f42924622487647875608bf7fb224958a128

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page