IDA用于绘图的是什么?

时间:2013-09-10 22:48:17

标签: graph reverse-engineering ida

我们需要为某些自定义中间语言代码创建CFG。我们目前正在使用Qt + graphviz - 而CFG看起来像屁股。

具体来说,我们似乎无法弄清楚我们如何能够

  1. 将“流程”(从上到下)放入图表中,

  2. 使连接线绕其他图形节点运行。

  3. 无论如何,我们正在欣赏令人敬畏的IDA CFG - 并注意到IDA似乎根本没有使用graphviz! GV为我们的项目增加了x MB的依赖项,我们很乐意摆脱它。

    所以问题是:有没有人知道IDA用于图形渲染和排序的内容?

    我们考虑过编写一个IDA插件来使用图形功能,但对于我们想要做的事情,这似乎有点过头了。

2 个答案:

答案 0 :(得分:2)

我认为IDA使用自己的图形库(尽管你可能会问Ilfak Guilfanov对此有明确的答案)。

您正在寻找的内容称为" Sugiyama图布局算法" (见:Layered graph drawing)。

关于citeseerx的这个问题(尤其关注CFG)有一篇非常有趣的论文(参见:Graph Layout for Code Flow Visualization)。

正如前面提到的论文所述,OGDF(http://www.ogdf.net/)提供了Sugiyama布局算法(http://www.ogdf.net/doc-ogdf/classogdf_1_1_sugiyama_layout.html),尽管可能需要进行一些调整。

希望有所帮助!

答案 1 :(得分:1)

最后我检查过他们使用了(Q)WinGraph,您可以从this page获取修改后的来源(基于VCG tool)。

类似的内容yED您可能还想查看&有一个few IDA scripts也使用TouchGraph(似乎没有免费)。