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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3

angr-9.2.43-py3-none-macosx_10_9_x86_64.whl (8.5 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file angr-9.2.43.tar.gz.

File metadata

  • Download URL: angr-9.2.43.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.43.tar.gz
Algorithm Hash digest
SHA256 221c0b9a21b6f2eaa94cdb3a4a6a47d2b5a4deb73564e871641feb7262f0a743
MD5 a1216db22e3c9e320d43b940cef2b2dc
BLAKE2b-256 6f5cb90c00e488a5b52e6e9245e120565b1b84c6f90802cbe2a9d630c141754b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.43-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.43-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 43a3a94c242a78f8e6d477844d3b1999edff92bcc09fa439856cf12fc9a47d00
MD5 2ffb6e2de024a91989c7204366c681f4
BLAKE2b-256 f14795bf62ca61307b031c7a622185236342d10ef85d365fb29b8353053d024e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.43-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 921d50051836f769c1a7dd0f6334a844d70d50ba2c7e656a3899d28beacd632c
MD5 9eba8ccea010a46bf25243afb3617424
BLAKE2b-256 94c679a604bc2651475abe5c9816a1fc519710bbbdc0a9b73f947bc99a4690cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.43-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ec709e650c7cd3251a252507875ff6edd9cd1df15213fbe5f03ab64b1e345b01
MD5 f2eaf6b6f2f42113b075d8bc6e4ced43
BLAKE2b-256 befedfff1e6dd5eebb877eda94588aa509138afc35308bf780f00e05481a073e

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