• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.azure-pipelines/H13-Jan-2021-3226

.github/ISSUE_TEMPLATE/H13-Jan-2021-11284

angr/H13-Jan-2021-131,81996,729

native/H03-May-2022-3,2552,469

tests/H13-Jan-2021-17,80612,318

.gitignoreH A D13-Jan-2021245 3331

DockerfileH A D13-Jan-2021493 128

LICENSEH A D13-Jan-20211.3 KiB2519

MANIFEST.inH A D13-Jan-2021107 43

README.mdH A D13-Jan-20212.5 KiB5539

setup.pyH A D03-May-20225.4 KiB176149

README.md

1angr
2====
3
4[![Latest Release](https://img.shields.io/pypi/v/angr.svg)](https://pypi.python.org/pypi/angr/)
5[![PyPI Statistics](https://img.shields.io/pypi/dm/angr.svg)](https://pypistats.org/packages/angr)
6[![Build Status](https://dev.azure.com/angr/angr/_apis/build/status/angr?branchName=master)](https://dev.azure.com/angr/angr/_build/latest?definitionId=18&branchName=master)
7[![License](https://img.shields.io/github/license/angr/angr.svg)](https://github.com/angr/angr/blob/master/LICENSE)
8[![Gitbook](https://img.shields.io/badge/docs-gitbook-green.svg)](http://docs.angr.io)
9[![API Docs](https://img.shields.io/badge/docs-api-green.svg)](http://angr.io/api-doc)
10
11angr is a platform-agnostic binary analysis framework.
12It 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 team, [Shellphish](http://shellphish.net), the open source community, and **[@rhelmot](https://github.com/rhelmot)**.
13
14# What?
15
16angr is a suite of Python 3 libraries that let you load a binary and do a lot of cool things to it:
17
18- Disassembly and intermediate-representation lifting
19- Program instrumentation
20- Symbolic execution
21- Control-flow analysis
22- Data-dependency analysis
23- Value-set analysis (VSA)
24- Decompilation
25
26The 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](http://docs.angr.io/docs/toplevel.html) and their docstrings.
27
28The short version of "how to install angr" is `mkvirtualenv --python=$(which python3) angr && python -m pip install angr`.
29
30# Example
31
32angr does a lot of binary analysis stuff.
33To get you started, here's a simple example of using symbolic execution to get a flag in a CTF challenge.
34
35```python
36import angr
37
38project = angr.Project("angr-doc/examples/defcamp_r100/r100", auto_load_libs=False)
39
40@project.hook(0x400844)
41def print_flag(state):
42    print("FLAG SHOULD BE:", state.posix.dumps(0))
43    project.terminate_execution()
44
45project.execute()
46```
47
48# Quick Start
49
50- [Install Instructions](http://docs.angr.io/INSTALL.html)
51- Documentation as [HTML](http://docs.angr.io/) and as a [Github repository](https://github.com/angr/angr-doc)
52- Dive right in: [top-level-accessible methods](http://docs.angr.io/docs/toplevel.html)
53- [Examples using angr to solve CTF challenges](http://docs.angr.io/docs/examples.html).
54- [API Reference](http://angr.io/api-doc/)
55