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

Uploaded Python 3Windows x86-64

angr-9.2.21-py3-none-manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded Python 3

angr-9.2.21-py3-none-macosx_10_9_x86_64.whl (2.7 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: angr-9.2.21.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.14

File hashes

Hashes for angr-9.2.21.tar.gz
Algorithm Hash digest
SHA256 3b3783da6e195f6c5a42fd747d7f0171afaa718b863f1c1380073fe45872c1aa
MD5 74d2a769b83b6ebe729165f6ccb95100
BLAKE2b-256 bb1f1b77fd0406f07d960a028bf0a928368d6b4b0346bb2d5529be46df71c902

See more details on using hashes here.

File details

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

File metadata

  • Download URL: angr-9.2.21-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/4.0.1 CPython/3.8.14

File hashes

Hashes for angr-9.2.21-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2e68dd76c0ec527f96c41f69bbe5acc07f1333be1c30ff8a01496a8b6a82445b
MD5 0e3437a469a909cf7e302dfd0fed6f99
BLAKE2b-256 72eab4ea44a6fe9faf486c755cf31f3df6b974a7fbf7bcf36dab90feb423465b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.21-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae294c7f1fd889e957ad0c494f97094482cbb3d9063660304d54a23d6ed95d42
MD5 59fe7ccfa849fce700158e677f6cc31c
BLAKE2b-256 59c55e9e396b090858262017a5e12f0850965184e2d552c474ac94f0bb0520aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for angr-9.2.21-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5b9b1e9f3f0db40e8d14c27d61249f0a9049bb90ee1068566be33980e4290a84
MD5 5c1bd2e2728acb6de6259141a948916f
BLAKE2b-256 a8cdd7fb699280de51cc227767b55d48d2458112906d2e4712a42b0877359533

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