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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3

angr-9.2.52-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.52.tar.gz.

File metadata

  • Download URL: angr-9.2.52.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.52.tar.gz
Algorithm Hash digest
SHA256 166c85cf8e4fc0cd474b57d1452ce240a3ec9a3a981b7085b9fdce3e856f4680
MD5 2d0c938f1de3967db4339386cdf03d7d
BLAKE2b-256 760b8f210d2ca89be319e0b8b9abd8ca2a7fb6f3f521c1cc90b77de2e22eedfb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.52-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.52-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4a716805c2cadf6758bb5c0e5d6d1ba93e9f75f609047f657931bab92604707e
MD5 17c44a8a9de5d62c5138201ece329b63
BLAKE2b-256 d2882bc1e0950f614c1f2b071f530881f472dd03d36bab464953bde3bdcd508e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.52-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 08c8dfaf2489b2a04702496f09a8013e93c09ecb86f1c2a6f8e601b49e22d7e0
MD5 c6676c9df8f6711c660df48f11adb716
BLAKE2b-256 7c8e583c66a7025e2eb544d072c24e72174236fc3094cd0f1b459fa2f8558939

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.52-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ffaf779d3fd0ed393dd6f32006e102137b960919d17d4735b7885ebd566695c5
MD5 414c4436483ba315b5e5aa3457dcea41
BLAKE2b-256 6604e065159a5381e9b870937ec10ad72124cf3da9f69e617f5da6518cea8753

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