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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3

angr-9.2.83-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.83.tar.gz.

File metadata

  • Download URL: angr-9.2.83.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.83.tar.gz
Algorithm Hash digest
SHA256 829c15c1a4df6a118a364aea47b2eccec26388b23030e65789d400d3bfa53d9e
MD5 fde16cb83f99c3b2dd14476ffb7c2c3a
BLAKE2b-256 166fac6bbb0b354378a54f8e557bc0739be11f07c559c5cf5b1cfbc1fbde3639

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.83-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.83-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ce137507c7f643343153dd80a3797d5891abc3cea166af96ed3115768b739383
MD5 8b4d28f73083fcb14104f6bdaf50e4b4
BLAKE2b-256 8a10481ea6c003dda2a96fc948f2b249d9b4b43914f3184966fd2ad059cab8c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.83-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f658dc90f6cd70db791521cc5a2105a7ea1129316b4929aae2dbc3ffed8a4f6
MD5 0d5b0a16aa4bdb4acbeaf22ba25ae9f0
BLAKE2b-256 54472e891df09450e9710905b903e6b90b16b2261b2c8760c50c6d1cd898c964

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.83-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d38c9dacd2c7c35302c5f9d5ad62feb4e7851897acd2746956eb8df80ef61cdf
MD5 b34e52375889f0b157a3038305ce265f
BLAKE2b-256 c9bd72731bdef2c68defe14ca9fff23fc9e379a9bb33833993034fdf940f46ed

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