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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3

angr-9.2.71-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.71.tar.gz.

File metadata

  • Download URL: angr-9.2.71.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.71.tar.gz
Algorithm Hash digest
SHA256 a9bb002c6207aaea8ba0e127cc2325f8e0f08e9781684e6a29f996e9db327be6
MD5 18d7565627a9d7f6b171c10b8ba86cb8
BLAKE2b-256 d40051936c0d18b61e84263d9e81f608ec08841c9be0de5d8f060de45b65572c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.71-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.71-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 47c974d9c61fe31cb085477d6209dd0e98b8c2a979ba817394c942b769312f88
MD5 98d5da968c259e80bda038fc63121876
BLAKE2b-256 cff0d1e1d3cd264f6f39b88b1cbd4d3a793ec3cf31aa2c32c70e70c41849b267

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.71-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c8a20a81b1ac273c62d889defcb2e772878a6782b619d0588b3f1a4f29b072b
MD5 8944461b22ff246d3c68b16014656836
BLAKE2b-256 783d199f2a0466ccb4f533788cad5e3338f7ad6033e929cc3eb2fe48a6460005

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.71-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 79848319dcd94c66857b80397659e1eaaf77015145bc47fd1c517cd0bc302413
MD5 c1f854af2edfcdb7ed272d26380cc2d0
BLAKE2b-256 7de6b888950a74e961f179744cbc210972a030bf8190f58d2b3be47461f684ca

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