我试图弄清楚如何在现有项目(元圆解释器)中使用Soot。具体来说,我想使用Soot将Java字节码转换为我可以解释的便捷的3地址代码(Jimple或Shimple)。我可能以后想做更多的事情,但是现在我只想要转换。
进行此翻译的最佳方法是什么? Soot看起来像一个庞大的项目,具有大量的功能,但是我真的只需要一个方法
compileClass: Byte[] -> ShimpleClass
最好尽可能纯(即不需要安装/拆卸,所有东西都包装在该方法中)。我已经花了很多时间浏览javadoc / papers / presentations,但是其中大多数似乎都集中在用作命令行工具或eclipse插件上。谁能给我一些从哪里开始的指示?
最佳答案
在Soot邮件列表中,这可能是最简单的答案。
设置了Soot以从文件系统加载.class文件,但指示它也可以从ByteArrayInputStream加载某些内容并不难。我想这应该对您有帮助。