美文网首页
angr 文档翻译(1-7):分析

angr 文档翻译(1-7):分析

作者: v1gor | 来源:发表于2019-11-05 14:59 被阅读0次

分析

angr的目标是使得对二进制程序的分析更加简单。学习至此,angr允许你将分析代码打包为一个通用的格式,以便于应用到任何project的分析中。我们将会在之后的部分中教你如何写你自己的分析代码,但是基本的思想是所有的分析都在project.analyses中(例如,project.analyses.CFGFast())且可以被作为一个方法来调用,返回一个分析结果的实例。

內建分析函数

名字 描述
CFGFast 构建一个快速的程序控制流图
CFGAccurate 就构建一个精确的程序控制流图
VFG 对程序中的每个方法都执行VSA,创建一个值流图(Value Flow Graph)并检测栈变量
DDG 计算一个基于数据的图,允许你决定给定的的值取决于什么声明
DFG 为每个在CFG中出现的基本块构建数据流图
BackwardSlice 有目的地为程序计算一个Backward Slice
Identifier 定义CGC二进制文件中的通用库函数
更多! angr有许多的分析函数,大多数都可以使用!如果你想要知道如何使用某个分析函数,你可以在github上提交一个issue来获取相应的文档

容错(Resilience)

分析函数可以有较好的容错性,并且基本上能够catch和记录所有错误。这些错误被记录为analysiserrors或者named_errors属性,具体被记录为哪种属性取决于这个错误是如何被抓出的。然而,你可能想要以“fail fast”模式运行一次分析,从而忽略那些错误。为了达到这个目的,你可以给analysis的构造函数传入一个fail_fast=True的参数。

相关文章

网友评论

      本文标题:angr 文档翻译(1-7):分析

      本文链接:https://www.haomeiwen.com/subject/vuasbctx.html