【问题标题】:How to use VTA algorithm to create call graph with soot and spark for java?java - 如何使用VTA算法为java创建带有soot和spark的调用图?
【发布时间】:2021-09-15 19:23:13
【问题描述】:

我是 soot 框架的分析新手,现在我需要实现 VTA 算法 并使用它来创建调用图。

如何实施VTA

我如何在 soot 中使用 VTA 实现?

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: java apache-spark analysis soot


【解决方案1】:

您可能不再需要它,但 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();

之后你只需编写一个简单的方法来遍历图并对其进行序列化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2020-05-11
    • 2021-03-03
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 2013-09-17
    相关资源
    最近更新 更多