angr/angr

GitHub: angr/angr

一个基于 Python 的跨平台二进制分析框架,提供符号执行、反编译、控制流分析等功能,帮助安全研究人员在无源码情况下深入分析二进制程序。

Stars: 8519 | Forks: 1156

# angr [![最新版本](https://img.shields.io/pypi/v/angr.svg)](https://pypi.python.org/pypi/angr/) [![Python 版本](https://img.shields.io/pypi/pyversions/angr)](https://pypi.python.org/pypi/angr/) [![PyPI 统计](https://img.shields.io/pypi/dm/angr.svg)](https://pypistats.org/packages/angr) [![许可证](https://img.shields.io/github/license/angr/angr.svg)](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, 中间语言, 二进制分析, 二进制安全, 云安全监控, 云安全运维, 云资产清单, 反汇编, 反编译, 可配置连接, 开源项目, 控制流分析, 插桩, 模糊测试辅助, 浏览器安全, 漏洞搜索, 程序分析, 符号执行, 逆向工程, 静态分析