Skip to content
forked from angr/angr

A powerful and user-friendly binary analysis platform!

License

Notifications You must be signed in to change notification settings

draperlaboratory/angr

This branch is 4 commits ahead of, 1133 commits behind angr/angr:master.

Folders and files

NameName
Last commit message
Last commit date
Jul 27, 2023
Aug 1, 2023
Jul 28, 2023
Jul 29, 2023
Jul 29, 2023
May 30, 2023
Mar 9, 2023
Jul 31, 2023
Mar 9, 2023
Aug 11, 2015
Nov 24, 2020
Mar 15, 2023
Jan 10, 2022
Aug 1, 2023
Aug 1, 2023
Feb 7, 2023

Repository files navigation

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

About

A powerful and user-friendly binary analysis platform!

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.5%
  • Other 0.5%