一个强大的、用户友好的二进制分析平台

项目地址

https://github.com/angr/angr

angr

angr 是一个与平台无关的二进制分析框架。 它由 加州大学圣巴巴拉分校的计算机安全实验室、 亚利桑那 州立大学的 SEFCOM 、他们相关的 CTF 团队、 Shellphish 、开源社区和 @rhelmot 为您提供

介绍

angr是一套Python 3库,可以让你加载一个二进制文件并对其做很多很酷的事情。

  • 反汇编和中间表征提升
  • 程序工具化
  • 符号执行
  • 控制流分析
  • 数据依赖性分析
  • 值集分析(VSA)
  • 反编译

 

最常见的 angr 操作是加载二进制文件: p = angr.Project('/bin/bash') 如果您在像 IPython 这样的增强型 REPL 中执行此操作,则可以使用 tab-autocomplete 来浏览 顶级可访问方法 及其文档字符串。

“如何安装 angr”的简短版本是 mkvirtualenv --python=$(which python3) angr && python -m pip install angr .

例子

angr 做了很多二进制分析的事情。 为了帮助您入门,这里有一个使用符号执行在 CTF 挑战中获得标志的简单示例。

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()

快速开始

请登录后发表评论

    没有回复内容