angr生成控制流图CFG遇到的问题

环境:Windows 10; Python 3.7.3(虚拟环境)

依赖的第三方库:angr; angr-utils; bingraphvis;

1、AttributeError: 'XRef' object has no attribute 'sort'

错误定位在 "{{虚拟环境路径}}\lib\site-packages\bingraphvis\angr\annotator.py" 这个文件下的第384行。

在github的仓库里有人提出了相同的问题,作者给出的解答是:

第一个和第三个问题在修改后不再报错,但第二个问题出现了新的 bug: 

AttributeError: 'MemoryData' object has no attribute 'insn_addr'

 考虑到第三方库作者提出的 memory_data 参数,于是我在 site-package 下搜索了memory_data,结果如下:

 可以看到xref类下面有一个 ins_addr 属性。把第385行的 dr.insn_addr 改成 dr.ins_addr,错误解决。

(p.s. 在写这篇文章的时候 github 上提出相同问题的老哥也发现了解决的办法hhhh。)

2、FileNotFoundError: [WinError 2] "dot" not found in path.

 百度了很久才发现是自己没有下载 Graphviz,这个需要单独下载,而不是只装一个python库就完事了。下载完以后放到项目的某个目录下,再定位到 pydot.py 下将第1723行的 'dot' 改为绝对路径。

 

参考链接:

angr分析程序的控制流图CFG

AttributeError: 'XRef' object has no attribute 'sort' #33

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于如何使用angr以及如何解决实际问题的探讨思考,我可以给您一些建议和想法。 首先,angr是一种开源的二进制分析框架,它可以用于模拟程序执行、符号执行、约束求解等任务。使用angr可以帮助我们分析程序的行为,发现安全漏洞,解决Bug等问题。 对于如何使用angr,我认为可以从以下几个方面入手: 1. 理解angr的基本原理和工作流程:学习angr的工作原理和流程是非常关键的,它可以帮助我们更好地理解angr的各个模块和函数,并且可以提高我们的分析效率和准确性。 2. 了解angr的API和使用方法:angr提供了丰富的API和使用方法,包括路径分析、符号执行、约束求解等功能。我们可以通过掌握这些API和使用方法,来实现我们的分析策略,并且解决实际问题。 3. 掌握相应的工具和技术:除了angr本身之外,使用angr还需要掌握一些相关的工具和技术,例如IDA Pro、Ghidra等反汇编工具、Python编程、Shell编程等。这些工具和技术可以帮助我们更好地使用angr进行分析和解决问题。 针对如何解决实际问题,我认为可以从以下几个方面思考: 1. 确定分析目标和关键点:在使用angr进行分析之前,我们需要明确自己的分析目标和关键点,例如发现程序漏洞或者解决程序性能问题等。只有明确了分析目标和关键点,我们才能有针对性地进行分析,并且解决实际问题。 2. 制定分析策略和方案:在明确了分析目标和关键点之后,我们需要制定相应的分析策略和方案。例如,我们可以通过符号执行来发现程序中的漏洞,或者通过约束求解来解决程序的性能问题等。根据不同的分析目标和关键点,我们可以选择不同的分析策略和方案。 3. 结合实际应用场景和技术实践:除了掌握angr和相关工具和技术之外,我们还需要结合实际应用场景和技术实践,来解决实际问题。例如,在分析某个程序时,我们需要了解该程序所使用的编程语言、数据类型和算法等,以便更好地使用angr进行分析,解决实际问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值