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 Code style: black pre-commit

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3

angr-9.2.36-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.36.tar.gz.

File metadata

  • Download URL: angr-9.2.36.tar.gz
  • Upload date:
  • Size: 2.1 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.36.tar.gz
Algorithm Hash digest
SHA256 e65447f2db045dcdcc1df7168c059cd8b6c06c03273bc4f204bebc0f309f5c57
MD5 8690cdac039f7ea05408f449a1e285cf
BLAKE2b-256 ef0f67baa8934af8613494918faec5e0c257a86e945750e336a67b518af03750

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.36-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.36-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 653c63e4a2e6dbbb54c5cca06fdd4404af7c874912f72dd8dea4178621cd3b6c
MD5 8f1805b1ec7f7f77b3d14bd177934513
BLAKE2b-256 c8735523d647a240881116ad5c65408ef6e92d6ed1980eece7a260fde29b4b85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.36-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7c1356fa0c7a0b44a4a42ed733b911fb77c19f51fdb3c771567186030cae0bc
MD5 42e94a957694f0fb0df96ade9de776e1
BLAKE2b-256 28d35add390a9f077de30185e16584f1de83f3644133a217a7de9abbf3be3922

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.36-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3434de900727e4302d1725ba03fdd8275a116ce270e0704ef2d79cbf355a7839
MD5 433f212db8d03a762178c9a0c05fbff7
BLAKE2b-256 00f4a9e635c810dc2a6655abdadd839ccba521084bbea97e06841b7fdaab0d33

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