Angr - A Powerful In Addition To User-Friendly Binary Analysis Platform



angr is a platform-agnostic binary analysis framework. It is brought to yous past times the Computer Security Lab at UC Santa Barbara, SEFCOM at Arizona State University, their associated CTF team, Shellphish, the opened upward source community, too @rhelmot.

What?
angr is a suite of Python iii libraries that allow yous charge a binary too create a lot of cool things to it:
  • Disassembly too intermediate-representation lifting
  • Program instrumentation
  • Symbolic execution
  • Control-flow analysis
  • Data-dependency analysis
  • Value-set analysis (VSA)
  • Decompilation
The nearly mutual angr performance is loading a binary: p = angr.Project('/bin/bash') If yous create this inwards an enhanced REPL similar IPython, yous tin role tab-autocomplete to browse the top-level-accessible methods too their docstrings.
The brusque 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 become yous started, here's a uncomplicated instance of using symbolic execution to become a flag inwards a CTF challenge.
import angr  projection = 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