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.54.tar.gz (2.3 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.54-py3-none-win_amd64.whl (8.1 MB view details)

Uploaded Python 3Windows x86-64

angr-9.2.54-py3-none-manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded Python 3

angr-9.2.54-py3-none-macosx_10_9_x86_64.whl (8.6 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for angr-9.2.54.tar.gz
Algorithm Hash digest
SHA256 05b7e0e7aac2bbb2525205849297cd476e23133827fa11f49d217f946c40d201
MD5 951161a32bbbfb5c2eae98429d5f7b16
BLAKE2b-256 5a519dcf716f5b4b933b20a36f715a0fea33894b9f8adef5c854bf04c4fb3937

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for angr-9.2.54-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9799fc6528e50d9d1f84f91700780cba1bcbebabb6b6eb426c4389ff26f8010d
MD5 821deca619f338bbabc64c28c3bd05f0
BLAKE2b-256 442f25589e504243a59b9f152ae25112c68a18c21a42ca6c2cbe99915eb7394b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.54-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ccf12a418d3c068f5531cd2a8cedee19d143b0b854b216cb2a877963d55408e4
MD5 c2f70bd78fc308718035a2bfb7104604
BLAKE2b-256 194fc79abdf92122d66551b9381d39e3965db67a3ecfacc16784aeead80e5129

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.54-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ca64e5501440fc11d1bedf8742ecd84210fe141da9ca5d7bf398073230a811c6
MD5 db99252d549d466c5e566412716559b5
BLAKE2b-256 c5acd9caee4642a0a82ceff26b79a87b328973e0d3faa404d477a7bf5a01a03c

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