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 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄