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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3

angr-9.2.57-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.57.tar.gz.

File metadata

  • Download URL: angr-9.2.57.tar.gz
  • Upload date:
  • Size: 2.3 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.57.tar.gz
Algorithm Hash digest
SHA256 86b145adec1af92af9d0efe2d5805c6da4f39d4af37be2b8cdce872003405412
MD5 ae4bc79f45f58f85511945beba9a7c3b
BLAKE2b-256 bb7506106f75a9da4a74384df3f0d8e309c3f2791e2d522c820f039417f5f3b6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.57-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.57-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 c38e08e38b19277ae586f7e1322ee215b4a09d99dfe39a81b64764110fbed64e
MD5 5023962b4f41a3c0bbe506575bdf7a64
BLAKE2b-256 36aad0bd4f63de74dcd80a558966eebab78da64e57d6ba2bb63a8b91a6fa4894

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.57-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c5fe25ec868948636f98cdc80495a1629d362f94045d39629e711206eb60b062
MD5 42418580628f37dfeeadb0cf6c0e7d4b
BLAKE2b-256 ab36e353d44af6f471c110e023690e0381d54a0b7d8043ab515297118de2e42b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.57-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5001e57e450a639443b599f37f66410c9d6d97788b4d6e3495b5bfd530d3baf8
MD5 1832ffb490e8e0787602ab5cab4f3b1f
BLAKE2b-256 2e8f70579b18b15fe75828f5b0af8409e5574676b3b27f7995323f1905c25186

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