为了以编程方式分析.java文件,我刚刚开始使用Soot。据我所知,碳烟似乎是一个非常强大的源代码分析工具,但我在网上发现的大多数材料都谈到将其用作命令行工具。
我需要从给定目录中的.java文件中以编程方式加载类,构造一个程序依赖图并进行一些程序切片。我仍然不确定煤烟是否提供切片,但我可以自己实现,一旦我有了PDG。
为了开始,我尝试使用以下代码:
Options.v().set_whole_program(true);
Options.v().set_soot_classpath("...");
SootClass c = Scene.v().loadClassAndSupport("MyClass");
c.setApplicationClass();
CHATransformer.v().transform();
CallGraph cg = Scene.v().getCallGraph();但是,它不起作用。它在loadClassAndSupport调用中被卡住了几秒钟,然后我的程序就突然存在了,没有任何异常或任何东西。
如果有人尝试以编程方式使用煤烟,我还需要设置其他选项吗?或者你能告诉我一个教程,他们从零开始就设置了碳烟programmatically?
发布于 2015-10-16 10:13:14
您不应该使用loadClassAndSupport。插入“场景转换器”代替。切片可以通过使用FlowDroid扩展来实现。它支持分割Android和Java代码。
https://stackoverflow.com/questions/32987025
复制相似问题