0

我正在使用 Soot 检测 apk 文件。当我在运行 soot.Main 之前添加以下语句时(甚至没有创建我的 body 转换器),我得到一个 regCount 错误。(对于不同的apk文件,不同的方法会出现同样的错误。)

    Scene.v().addBasicClass("MyScheduler");
    // PackManager.v().getPack("jtp").add(new Transform("jtp.myInstrumenter", new MyBodyTransformer()));
    soot.Main.main(args);

我得到的错误是:

    Transforming android.support.v4.view.ViewConfigurationCompat$FroyoViewConfigurationVersionImpl... 
    Exception in thread "main" java.lang.RuntimeException: regCount does not match the number of arguments of the method
       at org.jf.dexlib.Code.Format.Instruction35c.checkItem(Instruction35c.java:160)
       at org.jf.dexlib.Code.Format.Instruction35c.<init>(Instruction35c.java:69)
       at soot.toDex.instructions.Insn35c.getRealInsn0(Insn35c.java:96)

提前致谢。

4

1 回答 1

0

我的问题是由我尝试添加的类代码引起的。这确实是一个微妙的点:我使用“Long”的 ArrayList,但我的一些方法是添加/删除“long”类型的变量。尽管 Java 执行装箱并且我执行 Java 代码没有问题,但这种差异在中间语言中是有问题的。

于 2014-06-19T18:25:45.257 回答