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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3

angr-9.2.49-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.49.tar.gz.

File metadata

  • Download URL: angr-9.2.49.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.49.tar.gz
Algorithm Hash digest
SHA256 425e3448f6468edbc3f30f6442d357a8cda338af3ef436b4cf6b57596cbb4ac8
MD5 b4c6cd956e57206718b405be78734714
BLAKE2b-256 a3752f71f4c49b6c670d871fe7fa176d685aca1dc861549a6c8cc2b0b405d1e2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.49-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.49-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ee368173baf10f9b2462043123608ebc36c05e76aae0d13797e6c4addce60b60
MD5 847697377355e9946b5bca7e609eef7c
BLAKE2b-256 c5affbd3abb9168e35ddc4c71178b11fea49a535e1547c3ad15256418ed194ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.49-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6438ac6a267376855fa9c69a6c9f18064ab48bb12fd53d84d16ee48c43aa132
MD5 008ba04fece1a3cd0ef6f7a13d45825c
BLAKE2b-256 42bd574cf91bdde84e6f437a06ba3588a8cc09c671112b62383500a7f9b5b8f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.49-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f90b31cf0c1b921e99235187aa5c5bcc43fef403f5e2135456c8207e1c0b58dc
MD5 817e86de4d6dea993d95a685e75327b5
BLAKE2b-256 57143600573741bc1d5778996eb80feba0aa6fe9dd7f89a0d42aab144a05d8d6

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