用于从二进制构建调用图的最佳 Python 框架/库?

逆向工程 二元分析 Python 二进制 调用图
2021-07-09 15:19:36

所以我使用 capstone 编写了一个 python 工具,它使用 capstone 反汇编 ELF 二进制文件的代码部分。

现在我还想以点格式创建并显示此二进制文件的调用图,我尝试使用谷歌搜索但找不到如何使用顶点或是否可以使用它来做到这一点,我还听说过其他一些框架像radare2之类的,但我仍然不确定哪个框架适合这个目的

所以你们有什么建议?如何通过在我自己的代码中使用一些框架来制作调用图?(我不想要一个工具,我已经知道那里有工具/程序,我不想复制他们的代码,我想自己写)

静态分析甚至可以通过读取文件来实现吗?考虑到一些函数调用可能是间接的?(我只需要使用 call 和 ret 指令来做到这一点)

1个回答

我的建议是您生成一个 graphviz ( https://graphviz.org/ ) 文件,其中包含所有节点和您想要的所有信息,然后使用命令 dot 绘制图形。但是,如果您想实时或在花哨的 UI 上制作它,我建议您使用 networkx ( https://networkx.github.io/ )