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

Uploaded Python 3Windows x86-64

angr-9.2.90-py3-none-manylinux2014_x86_64.whl (10.6 MB view details)

Uploaded Python 3

angr-9.2.90-py3-none-macosx_10_9_x86_64.whl (8.7 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: angr-9.2.90.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.18

File hashes

Hashes for angr-9.2.90.tar.gz
Algorithm Hash digest
SHA256 4f27d7d16dc843e184669dff5e585eb88a08c93e0538bb0276d489d6e127d6c0
MD5 d2536d03e4402f8de96dc40875f6fa63
BLAKE2b-256 cb1c6acc210775d16d5caf7911a218403b7d3bb15d17241f2de67a9879366b1b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.90-py3-none-win_amd64.whl
  • Upload date:
  • Size: 8.2 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.18

File hashes

Hashes for angr-9.2.90-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8fd74d9d8f69053f61c7f69dfcbe2bfc5338eaf13c7fab23905fcf86b237cb0c
MD5 bc94e9cf1cc31046572f13bcfa42d911
BLAKE2b-256 f30348f9edb59688bc1f1dce18fa140d91d6e2b23c14a572df42b79ddf3ddf38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.90-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 05f8a3c6d833d95cb6e3ede42f9cdb0f99771d836c092026b2581770bbc3b56a
MD5 b45dcaa82aec172e778391a23bb35a1e
BLAKE2b-256 4ce597df3c2240c479bae3926cea6d2071b4aec29f6ebbc9594ec290d7cf3274

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.90-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 03a0fa61bd33446c39cbbb6318d63cecf9621d73018bdbfe51ccedbadec25d4e
MD5 128a3880c6a893c11da7b5ef124ef0b8
BLAKE2b-256 c4774371b48413034d65e11eec76b0bb22c8becbdd1c889d58fe92360b88ff61

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