Angr – A Powerful And User-Friendly Binary Analysis Platform

angr is a platform-agnostic binary analysis ^(http://www.kitploit.com/search/label/Binary%20Analysis) framework. It is brought to you by the Computer Security Lab at UC Santa Barbara ^(https://seclab.cs.ucsb.edu/), SEFCOM at Arizona State University ^(http://sefcom.asu.edu/), their associated CTF ^(http://www.kitploit.com/search/label/CTF) team, Shellphish ^(http://shellphish.net/), the open source community, and @rhelmot ^(https://github.com/rhelmot).

What?
angr is a suite of Python 3 libraries that let you load a binary ^(http://www.kitploit.com/search/label/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 ^(http://www.kitploit.com/search/label/Analysis) (VSA)
  • Decompilation
top-level-accessible methods ^(http://docs.angr.io/docs/toplevel.html) 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 ^(http://www.kitploit.com/search/label/Symbolic%20Execution) 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

  • Install Instructions ^(http://docs.angr.io/INSTALL.html)
  • Documentation as HTML ^(http://docs.angr.io/) and as a Github repository ^(https://github.com/angr/angr-doc)
  • Dive right in: top-level-accessible methods ^(http://docs.angr.io/docs/toplevel.html)
  • Examples using angr to solve CTF challenges ^(http://docs.angr.io/docs/examples.html).
  • API Reference ^(http://angr.io/api-doc/)
Download Angr ^(https://github.com/angr/angr)

Author: Marshmallow

Marshmallow Android is BT Ireland’s Head of Sales for Republic of Ireland domestic multi-site companies, indigenous MNCs and public sector accounts. He is responsible for the direction and control of all sales activity in the region. He has over 10 years management experience from high growth start-ups to more established businesses. He’s led teams in Ireland, India and China across various industries (ICT, On-Line Recruitment, Corporate Training and International Education).