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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3

angr-9.2.53-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.53.tar.gz.

File metadata

  • Download URL: angr-9.2.53.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.53.tar.gz
Algorithm Hash digest
SHA256 323043258ee18c480524f028d3f2dfaf2c2e341eb5dc2bb163541abf3e33522e
MD5 be5a6c72ef9f61285bb3fc062fdcc79f
BLAKE2b-256 cd0dcd32b2b336facd907456bea7ca26deab50abc29fdd06ddb91987047e5001

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.53-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.53-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 54e08db9e2b914e20769f84402f23beeb1eae787cd068f276f4f4b07bce28e8d
MD5 ac6e11e90a41470db27386ea448d8ea8
BLAKE2b-256 afc44a648992687388696cf9a8e1126b48a954f3a781923ce2211dab6ec650e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.53-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28902d7ae3c6420493fa5f6b3ca00a8c99c25bbdf522e9667d10d5dd243b1c99
MD5 8434ef6c549a212ebb165d22f87c8b2d
BLAKE2b-256 01f7787e4ff24cd97f99be01dd8f8f60d558a7d8c834fe35237738a2f6ee40ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.53-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0a2bacccc5321614ea7dea6d435ea48bfedea05747f409069b967f8c4c487e6a
MD5 d20afa0f755c61ea4aa37b4a1217ff5b
BLAKE2b-256 2ab0d0144ba6e49967e7fb9ebac4971ad38c5d8cb99613b4d131830d15c6adf0

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