美文网首页
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