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 PyPI Statistics Build Status License Gitbook API Docs

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.

What?

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.6.tar.gz (2.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

angr-9.2.6-py3-none-win_amd64.whl (2.9 MB view details)

Uploaded Python 3Windows x86-64

angr-9.2.6-py3-none-manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded Python 3

angr-9.2.6-py3-none-macosx_10_9_x86_64.whl (2.6 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: angr-9.2.6.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for angr-9.2.6.tar.gz
Algorithm Hash digest
SHA256 3935af63a3ddd6e8fa2bd766e350b326aec6eca0c733efd5a5de639aab360b8b
MD5 8e5d5cdc9187187b41b818690eefa52d
BLAKE2b-256 6aae0e8c510261276a40568c3efb9e11b8d2280c15dcc3ad1dbfd33dc6e0d25a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.6-py3-none-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for angr-9.2.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 1a82d78ab5e73867c8afb00eb62dbb1530df06f1fd5c788c6fe0fecf4282ca87
MD5 71488188f7ff32122e4e506bf0a226c4
BLAKE2b-256 2ec08c16abbd449253d6132ff6a9010179a6f717d8cf8837904becaef0b1d3b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.6-py3-none-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for angr-9.2.6-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aaffd85c1dda948e831c02a411f63a4824e11c07e6b243fcea66ffce752c7f86
MD5 a6fe2be078acc198b8f1a4416b3cab4e
BLAKE2b-256 70f8577b7500098c50f4a4c62e1e3fe1542130915a943b84bc62392f473300f8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.6-py3-none-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for angr-9.2.6-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 45cc56ffea260c47c6004c2a72ec74b0dc3e614dc69e9cf17402a1a2f86a0c64
MD5 50222d60f445740c25538b9eda871163
BLAKE2b-256 ab13d707f6528d7c0b6f6d6e127a015093115953807250e4f322b310b8a84176

See more details on using hashes here.

Supported by

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