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.78.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.78-py3-none-win_amd64.whl (8.4 MB view details)

Uploaded Python 3Windows x86-64

angr-9.2.78-py3-none-manylinux2014_x86_64.whl (10.8 MB view details)

Uploaded Python 3

angr-9.2.78-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.78.tar.gz.

File metadata

  • Download URL: angr-9.2.78.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.78.tar.gz
Algorithm Hash digest
SHA256 0d941bb348dc0377fc92c8b7eb51f5775f286168bf1aa6d1022e04bb19e660b3
MD5 2af54076919ec03ea9af8b7b014db80c
BLAKE2b-256 907bf9400515d188168be1d25275558e0df726f75bde6f441f42ef3fba0c3b6f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.78-py3-none-win_amd64.whl
  • Upload date:
  • Size: 8.4 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.78-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 1f3f8a50579f6baf5726aa07db90e92c8238a9c6b5628e6245196a7c7b0d59d5
MD5 d17cf17083b1c145dbda60fc59eb7212
BLAKE2b-256 2a17fccb48ff781f114ea6543c826a22632fd8632718e9904a398b429a52f1b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.78-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dd037cacb265dbc34fc951e392ceee1d3b92298fc7c7d56cf7d7dc1d2d0b6ede
MD5 ce87bccfd0d9f1eef0806c8bef229632
BLAKE2b-256 56a7e4dcf5e9f53693a6e9792946f0a2d3c84a5390ca4789b584308357601226

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.78-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7c344eb0955bc4cb2d8eff173ffafbf4c4c3c5ee76bbd771fcc358fc57377ddb
MD5 1d2262dd3794582c1c741517a9dd11f5
BLAKE2b-256 bdcc85b90e33e41a1879769e6e73f7268884d87db5b81aeea9ba5f56567eba71

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