如何使用Soot创建控制流图?

时间:2017-07-06 09:23:45

标签: java static-analysis control-flow-graph soot

有一段时间我一直在努力创建一个带有Soot的控制流图,我在tutorials中迷失了方向。我没有将Soot用作Eclipse插件,而是尝试将Soot用作库或API。

我想要做的是,我有一堆Java项目,我想创建/生成这些项目的控制流图。我还看到Soot中有一个功能,我可以用“DOT”格式生成控制流图,这对我来说也是可以接受的。

显示如何使用Soot创建/生成控制流图的任何指南或示例代码都会很棒!

1 个答案:

答案 0 :(得分:1)

您可以通过创建一个新的ExceptionalUnitGraph来创建一个方法本地CFG,并将方法的SootBody传递给它。维基中的Soot教程向您展示了如何做到这一点。

要获得程序间CFG,即ICFG,您可以使用Soot扩展Heros: https://github.com/Sable/heros/blob/develop/src/heros/InterproceduralCFG.java