我使用soot来检测java程序。我知道在soot中添加对特定类的调用,我们必须将“Soot class-path”设置为包含该类,.class文件的目录。所以我在主类的主要方法中这样做。我带来了代码片段
public class Main {
public static void main(String[] args) {
Scene.v().setSootClassPath("/home/j/IdeaProjects/Test_1/classes:/home/j/IdeaProjects/Test_1/libs/rt.jar:home/j/IdeaProjects/Test_1/libs/jce.jar");
PackManager.v().getPack("jtp").add(new Transform("jtp.RetIns", new ExIns()));
....
但是当我想使用位于类文件夹中的“Insop”类时,可以按照Exins方法中的代码进行操作:
static SootClass Ins;
static
{
Ins= Scene.v().loadClassAndSupport("Insop");
}
我收到错误
Caused by: java.lang.RuntimeException: couldn't find class: Insop (is your soot-class-path set properly?)
我应该提一下,我使用ubuntu 14.4 32位,并在intellij上运行代码。 我找不到我的错误。你能不能帮助我。
答案 0 :(得分:1)
我终于找到了问题。我不知道为什么,但我应该设置" soot class-path"相对路径。例如,对于我的项目,它应该设置如下:
Scene.v().setSootClassPath("classes:libs/rt.jar:libs/jce.jar");