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 PyPI Statistics Build Status License Gitbook API Docs

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.

What?

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.3.tar.gz (2.1 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.3-py3-none-win_amd64.whl (2.9 MB view details)

Uploaded Python 3Windows x86-64

angr-9.2.3-py3-none-manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded Python 3

angr-9.2.3-py3-none-macosx_10_9_x86_64.whl (2.6 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: angr-9.2.3.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for angr-9.2.3.tar.gz
Algorithm Hash digest
SHA256 702e72e3bd5badbf07ab4090eb54a808a1ea6eb5670f576082ec70a4bf02c088
MD5 6ba312ddc232d6aaf747ede7aa4c4614
BLAKE2b-256 2cd8337b818bcebf592469fd62632c1c92b2925581883bd5c068a90785035ff7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.3-py3-none-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for angr-9.2.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7440be78bb2dd2f67becafaee49dd74bf222657fbe7417f4ec1a2eb7190aa039
MD5 4cd785fc04794e6f1c6240280128668c
BLAKE2b-256 fd89ac3caad3fcb511c1725cc1cffc12d16a6badcff32cd2a852ccef472837d0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.3-py3-none-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for angr-9.2.3-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b744e8272d1daaefddd9b103635d39fb92fbd2e738889d78e773df899f207fa8
MD5 e3de46918c930ab571bd5e43f1d1f598
BLAKE2b-256 a6144740d0537f9b62efa1ef13af600868995cfc56a012f31b4c08b2889d78ce

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.3-py3-none-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.15

File hashes

Hashes for angr-9.2.3-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 770263498409a61d79fda2b1111a0ea8d29668198a23d0f4088e9bb0a9fae1a0
MD5 fe1e69e32202f9caec1b3098fe297311
BLAKE2b-256 5b1f48017ab939b53763d1859d228472421a7d47a3892cba2b3d63b0fc77f63b

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