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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3

angr-9.2.55-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.55.tar.gz.

File metadata

  • Download URL: angr-9.2.55.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.55.tar.gz
Algorithm Hash digest
SHA256 cf3ae92bbed0ad671c534c8510a8a81e392a96e8df97918b9cfd38929f1df3e7
MD5 bb7d6632690986fd9d915655c8c04d46
BLAKE2b-256 7dabae1f3db7b07ecdae8b5e1befed6e6f9aa4e1dfe40bba1a34d015316d9a2f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.55-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.55-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ab8389b2ed96cd2ca782e7d219b344d72b82929d9a50bc2c09ee6137334fc675
MD5 2bfaa90eed281eef9fdfba6ce8e2192e
BLAKE2b-256 b3c1bb2ba49a509c311ead755c7d093ce48ea5cf01f41ef34f739f9225398ae6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.55-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 959c2f1045ef4617cb735989045aae909b4878ebee1c0a11b4ea5bda90902bee
MD5 679aacfd78f409f2a417b6a1c697d412
BLAKE2b-256 2362e946f865a38113a58a6ccbaa2aa2f24fe81ec02c25a5c584cfb6dc41699a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.55-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ee5b16c7d97f32f00537068fb49757a9addcddcb41334c22bcf5992189bca8d0
MD5 fc04d7f6c5599d28b7622fd6b0f738aa
BLAKE2b-256 3d153b78e243c218c7ee2aaa0999f476b37c6a67bd96fcff1d1c93f3dc5822a2

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