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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3

angr-9.2.66-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.66.tar.gz.

File metadata

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

File hashes

Hashes for angr-9.2.66.tar.gz
Algorithm Hash digest
SHA256 fcd58b8d37ed00bd03bc00acb59018bd30144cb0ca8cf4ece9411470a684638a
MD5 d3708421be367a56296e177172776356
BLAKE2b-256 3dadaf94724d1a3850e3aec90a63e61b909a7e7448a4eb29dbb57b0ef6b0c887

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.66-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.17

File hashes

Hashes for angr-9.2.66-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6d8d44a3b483b9102bdc210186d5c89f32375082c6b6cfc11d417e60c5baf462
MD5 62c412b8542aca0dae7d8d44ec2dd31a
BLAKE2b-256 e3ebda0515c445c0b477102f119dd5b99ef70b28fd1e6ee073157f21a65e23d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.66-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f2cf06691890a0b22225566f0fed98c367f569a07c6be98b2512349587896a1b
MD5 8b98b98d027c6ac31bf3b54b8db29ef6
BLAKE2b-256 914c3af6af6e62f505086cc88b9df87ddbaa3bce75c5aeb2a159ff76330c0511

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.66-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 23bead4e0c63a159b329dcca6d2f02e4441295668e30b3b2c30d7fd143c798e2
MD5 2a32af28411a11a6fa80210dbfaf6fee
BLAKE2b-256 f3790b7db33943208fc3ad1a3578b77525076ffa89a24d08e335567df8a8e6b0

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