【发布时间】:2021-09-15 19:23:13
【问题描述】:
我是 soot 框架的分析新手,现在我需要实现 VTA 算法 并使用它来创建调用图。
如何实施VTA?
我如何在 soot 中使用 VTA 实现?
【问题讨论】:
-
请提供足够的代码,以便其他人更好地理解或重现问题。
标签: java apache-spark analysis soot
我是 soot 框架的分析新手,现在我需要实现 VTA 算法 并使用它来创建调用图。
如何实施VTA?
我如何在 soot 中使用 VTA 实现?
【问题讨论】:
标签: java apache-spark analysis soot
您可能不再需要它,但 Soot 提供了一种创建调用图的简单方法。您可以使用命令行或提供的 API。
您可以设置不同的设置,与调用图相关的设置是 CG phase options in Soot。括号中的文本是给定阶段的名称和值。
使用 API 时(您需要 Soot jar,可以从 Soot Github repo 获取)您可以通过方法调用来设置选项,例如
Options.v().setPhaseOption("cg","enabled:true");
设置完你需要的所有东西后,你应该使用所需的参数运行 Soot
soot.Main.main(args);
之后你可以得到CallGraph
CallGraph cg = Scene.v().getCallGraph();
之后你只需编写一个简单的方法来遍历图并对其进行序列化。
【讨论】: