fumingxiaoshen 2023-02-02 13:15 采纳率: 50%
浏览 17
已结题

angr simulation manager step函数

angr simulation manager step函数

关于该函数的num_inst参数的具体含义是什么?
我查看了angr的源码,进行了如下解释。

img


对于angr的step,每次前进一个block,因此我认为不设置num_inst或者设置num_inst大于当前的块的语句个数的情况下都仅仅只是前进了一个block
假设当前的block含有两个语句,但我的实验结果却和我的想法不一致。

>>> simgr6 = project.factory.simulation_manager(thing=state)
>>> simgr7 = project.factory.simulation_manager(thing=state)
>>> simgr8 = project.factory.simulation_manager(thing=state)
>>> simgr6.step()
<SimulationManager with 1 active>
>>> simgr7.step(num_inst=2)
<SimulationManager with 1 active>
>>> simgr8.step(num_inst=10)
<SimulationManager with 1 active>
>>> simgr6.active
[<SimState @ 0x402880>]
>>> simgr7.active
[<SimState @ 0x40876c>]
>>> simgr8.active
[<SimState @ 0x402880>]
>>> 

烦请大家帮忙看一下到底是哪里出现问题,谢谢大家

  • 写回答

1条回答 默认 最新

  • 快撑死的鱼 2023-02-03 00:40
    关注

    回答不易,求求您采纳点赞哦

    ngr Simulation Manager函数中的num_inst参数step表示当前状态下要模拟的指令条数。当num_inst未指定或设置为大于当前块中指令数的值时,angr 将模拟整个块。

    如果您的实验结果与您的预期不同,则可能有其他因素影响了模拟结果。您可以尝试检查以下内容:

    • 块大小:块的大小可能并不总是相同的,并且可能取决于各种因素,例如体系结构、优化和代码结构。

    • 其他状态:在angr中,可以并行模拟多个状态。确保您正在使用正确的状态,并且其他状态不会影响您的模拟。

    • 状态选项:模拟的行为也会受到状态选项的影响,例如内存结尾、寻址模式等。检查状态选项是否设置正确。

    • 输入:模拟也可能取决于提供给模拟的输入。确保输入正确并符合您的期望。

    总的来说,在使用angr进行逆向工程和二进制分析时,一定要深入了解angr的底层实现和配置。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月16日
  • 已采纳回答 2月8日
  • 创建了问题 2月2日

悬赏问题

  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序