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:
The brusque version of "how to install angr" is 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.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
- Install Instructions
- Documentation every bit HTML too every bit a Github repository
- Dive correct in: top-level-accessible methods
- Examples using angr to solve CTF challenges.
- API Reference