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.85.tar.gz (2.4 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.85-py3-none-win_amd64.whl (8.5 MB view details)

Uploaded Python 3Windows x86-64

angr-9.2.85-py3-none-manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded Python 3

angr-9.2.85-py3-none-macosx_10_9_x86_64.whl (8.9 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: angr-9.2.85.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.18

File hashes

Hashes for angr-9.2.85.tar.gz
Algorithm Hash digest
SHA256 d034f39f7892ea14c553b2393821a7ae5169ee5520c3df42c61e20472e5c8e66
MD5 03e85c2342dba205dfc1f2c736721e42
BLAKE2b-256 15bf81f1a466984da45897093a0ac139c7e62697d391f7a8388255d8b8da817b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.85-py3-none-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.18

File hashes

Hashes for angr-9.2.85-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b30f46d71ba3ff5061e34bee6770b11b50397f9b2c3103af60d51197ceb8efbf
MD5 0c8f7b38ccb194927a888ce0e2a7f1c7
BLAKE2b-256 448e4eda80f85b15b807e204f80ae673082550e850c94a9fc6a16695c66b6489

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.85-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8caf17dbaf35c88f958d36bca35dc2ebd214f327e0dc5f9e1dae5ec2cb57bd2c
MD5 291d7c059687f5e8e07525cc8acb329c
BLAKE2b-256 53b452cbd2d4e4b11bb4803264c2049c0df8bb80d4186681d346cb6ea9eb5a41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.85-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f3766d9980b635bb3e9b346ffadde72c769bb69517cf27e11c90645b3f53aeb0
MD5 f8734141bec8dd2c4064bedf4f707ee1
BLAKE2b-256 9c8d9885cf239baab92d7ba8e6f87aadb22742d26c6c8e805c718fbf7cade9e8

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