angr/angr
GitHub: angr/angr
一个基于 Python 的跨平台二进制分析框架,提供符号执行、反编译、控制流分析等功能,帮助安全研究人员在无源码情况下深入分析二进制程序。
Stars: 8519 | Forks: 1156
# angr
[](https://pypi.python.org/pypi/angr/)
[](https://pypi.python.org/pypi/angr/)
[](https://pypistats.org/packages/angr)
[](https://github.com/angr/angr/blob/master/LICENSE)
angr 是一个平台无关的二进制分析框架。
它由 [UC Santa Barbara 计算机安全实验室](https://seclab.cs.ucsb.edu)、[Arizona State University 的 SEFCOM](https://sefcom.asu.edu)、他们的关联 CTF 团队 [Shellphish](https://shellphish.net)、开源社区以及 **[@rhelmot](https://github.com/rhelmot)** 带给您。
## 项目链接
主页:https://angr.io
项目仓库:https://github.com/angr/angr
文档:https://docs.angr.io
API 文档:https://docs.angr.io/en/latest/api.html
## 什么是 angr?
angr 是一套 Python 3 库,让你能够加载二进制文件并对其做很多很酷的事情:
- 反汇编和中间表示提升
- 程序插桩
- 符号执行
- 控制流分析
- 数据依赖分析
- 值集分析 (VSA)
- 反编译
最常见的 angr 操作是加载二进制文件:`p = angr.Project('/bin/bash')` 如果你在一个增强的 REPL(如 IPython)中执行此操作,你可以使用 tab 自动补全来浏览[顶层可访问方法](https://docs.angr.io/core-concepts/toplevel)及其文档字符串。
“如何安装 angr”的简短版本是 `mkvirtualenv --python=$(which python3) angr && python -m pip install angr`。
## 示例
angr 能做很多二进制分析的事情。
为了让你入门,这里有一个简单的例子,使用符号执行在 CTF 挑战中获取 flag。
```
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()
```
# 快速开始
- [安装说明](https://docs.angr.io/introductory-errata/install)
- 文档:[HTML](https://docs.angr.io/) 以及 angr [Github 仓库](https://github.com/angr/angr/tree/master/docs)中的源码
- 直接深入:[顶层可访问方法](https://docs.angr.io/core-concepts/toplevel)
- [使用 angr 解决 CTF 挑战的示例](https://docs.angr.io/examples)。
- [API 参考](https://docs.angr.io/en/latest/api.html)
- [awesome-angr 仓库](https://github.com/degrigis/awesome-angr)
标签:Amass, ASN解析, CTF工具, DNS解析, Findomain, URL提取, Wayback Machine, 中间语言, 二进制分析, 二进制安全, 云安全监控, 云安全运维, 云资产清单, 反汇编, 反编译, 可配置连接, 开源项目, 控制流分析, 插桩, 模糊测试辅助, 浏览器安全, 漏洞搜索, 程序分析, 符号执行, 逆向工程, 静态分析