本文最后更新于1054天前,其中的信息可能已经有所发展或是发生改变。
angr的目标是使对二进制程序进行的分析变得容易。为此,angr允许您以一种通用格式打包分析代码,这种格式可以很容易地应用于任何项目。稍后我们将介绍如何编写您自己的分析,但是我们的想法是所有的分析都出现在project.analyses
中(例如project.analyses.CFGFast()
)。它可以作为函数调用,返回分析结果实例。
Built-in Analyses
名称 | 描述 |
---|---|
CFGFast | 构建一个项目的控制流程图 |
CFGEmulated | 构建一个项目运行时的控制流程图 |
VFG | 对程序的每个函数执行VSA,创建数值流程图并检测堆栈变量 |
DDG | 计算数据依赖关系图,从而确定给定值所依赖的语句 |
BackwardSlice | 计算程序相对于某个目标的后向切片 |
Identifier | 标识CGC二进制文件中的公共库函数 |
More! | angr有相当多的分析,其中大部分是有效的!如果您想知道如何使用其中的某一个,请提交一个issue来请求获取一个说明文档 |
Resilience
分析可以写得很有弹性,基本上可以捕获并记录任何错误。根据捕获的方式,这些错误将被记录到分析的errors
或named_errors
属性中。但是,您可能希望以“fail fast”模式运行分析,这样就不会处理错误。为此,可以将参数fail_fast=True
传递到分析构造函数中。
点击数:9