根据 Radare2 文档,这是查找路径的命令:
agt [addr] find paths from current offset to given address
但是当我尝试该命令时,在运行aaaaa
分析后,出现以下错误:
[0x00430044]> agt 0x0042aa98 > agtoutput.dot
Unable to find source or destination basic block
我可以确认这两个地址是函数,我可以单独绘制每个函数。此外,0x00430044
确实导致0x0042aa98
. 我可以从 gdb 跟踪中看到这一点。我查看了radare2 canal.c 代码 ,发现它正在查看RAnalFunction->bbs
提供的地址。我尝试通过运行确保 bbs 填充了这些地址abb $s
abb [length] analyze N bytes and extract basic blocks
并将输出反馈到 r2。我abb $s
从各个地方跑来看看它是否会将基本块添加到 bbs 列表中。在不同地点分别为0x0
,0x00430044
和0x0042aa98
。但是没有任何效果,我总是收到“无法找到源或目标基本块”的错误消息。我可能会离开并进入兔子洞,但是“查找路径”功能非常有用,我真的很想让它工作吗?任何有关使用记录的agt
功能的帮助将不胜感激。