上次介绍了soot 命令行使用方法,这次介绍一下 soot 的Eclipse 插件。
使用 soot 生成不同类型的file:
Eclipse 的菜单 : Project -> Soot ...
选择相应的输出后,会生成一个 sootOutput 文件夹,包含输出结果。
下面对一个文件进行数据流分析
public class Testclass {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
String string = args[i];
System.err.println(string);
}
}
}
右键 Testclass.java -> Soot -> Process Source File -> Run Soot -> General Option ,选中 Interactive Mode,然后 Run,会生成字节码指令级别的数据流图。
如果使用 Manage Configurations 而非 Run Soot 时,会记录这次所做的选项。
还可以使用 soot 插件,使用 soot 自带的范例来扩展。
File -> New -> Example.. 可以选择合适的例子,会新建相应的 project。然后自己把例子扩展,
例如把 Testclass copy 到现在的 project 中,右键Testclass之后,
Soot -> Process Source File -> Run Soot…-> Soot Main Class,然后把 Soot Main Class 和 Soot Main Project 换成自己的(例如默认的 MyMain 和 MyBodyTransformer )