fumingxiaoshen 2023-02-18 20:28 采纳率: 50%
浏览 25

angr ddg 实例解析

对于如下的汇编代码

img


使用angr的DDG分析工具产生了粉色方框所示的两条数据依赖,粉色方框中的内容由左到右分别代表
block地址(指令地址),block地址(指令地址),DDG对于该条数据依赖解析出的内容

img

1.为什么语句41cd0f和41cd17之间存在依赖关系?我理解的是应该使用到了41cd0f修改了的寄存器rdx才算存在依赖关系

2.找到的一个关于DDG的定义,请问上述依赖关系是否属于这三个中的其中一个?

img

3.在何种情况下,才说两个指令之间存在数据依赖?

  • 写回答

1条回答 默认 最新

  • qq_46161207 2023-02-19 10:01
    关注

    1.指令41cd0f修改了寄存器rdx的值,41cd17的指令使用了寄存器rdx的值,因此这两个指令之间存在数据依赖关系。

    2.上述依赖关系属于数据依赖中的“真依赖”。真依赖指的是后续指令依赖于前面指令修改的数据的依赖关系。

    3.两个指令之间存在数据依赖的情况包括以下三种:

    真依赖:后续指令依赖于前面指令修改的数据。
    假依赖:后续指令需要前面指令的结果,但是前面指令并未修改内存或寄存器。
    控制依赖:后续指令的执行受前面指令条件分支的影响。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月18日