Hello, I'm a beginner at soot, i met a problem when i used soot to analyse APK files.
Describe the bug
When I use soot to analyse APK files, if i added Options.v().setPhaseOption("jb", "use-original-names:true");in the program, I got an error: java.lang.IllegalStateException: UnitThrowAnalysis StmtSwitch: type of throw argument is not a RefType!
I think this bug is the same as the bug reported in Issue 1256.
The code that causes the error is as follows:
Input file
The error occurs in all the APKs that I have tested.
Here is an example.
Stacktrace
The traceback of the error is as follows:
[Thread-1] ERROR heros.solver.CountingThreadPoolExecutor - Worker thread execution failed: UnitThrowAnalysis StmtSwitch: type of throw argument is not a RefType!
java.lang.IllegalStateException: UnitThrowAnalysis StmtSwitch: type of throw argument is not a RefType!
at soot.toolkits.exceptions.AbstractThrowAnalysis.mightThrowExplicitly(AbstractThrowAnalysis.java:75)
at soot.toolkits.exceptions.UnitThrowAnalysis$UnitSwitch.caseThrowStmt(UnitThrowAnalysis.java:844)
at soot.jimple.internal.JThrowStmt.apply(JThrowStmt.java:67)
at soot.toolkits.exceptions.UnitThrowAnalysis.mightThrow(UnitThrowAnalysis.java:281)
at soot.toolkits.exceptions.UnitThrowAnalysis.mightThrow(UnitThrowAnalysis.java:276)
at soot.toolkits.graph.ExceptionalUnitGraph.buildExceptionDests(ExceptionalUnitGraph.java:277)
at soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:220)
at soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:127)
at soot.toolkits.graph.ExceptionalUnitGraphFactory.newExceptionalUnitGraph(ExceptionalUnitGraphFactory.java:55)
at soot.toolkits.graph.ExceptionalUnitGraphFactory.createExceptionalUnitGraph(ExceptionalUnitGraphFactory.java:50)
at soot.toolkits.scalar.LocalSplitter.internalTransform(LocalSplitter.java:109)
at soot.BodyTransformer.transform(BodyTransformer.java:52)
at soot.BodyTransformer.transform(BodyTransformer.java:56)
at soot.dexpler.DexBody.jimplify(DexBody.java:692)
at soot.dexpler.DexMethod$1.getBody(DexMethod.java:117)
at soot.SootMethod.retrieveActiveBody(SootMethod.java:447)
at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250)
How can I get the original variable names of an APK in Jimple? Thank you for your reply.
Hello, I'm a beginner at soot, i met a problem when i used soot to analyse APK files.
Describe the bug When I use soot to analyse APK files, if i added
Options.v().setPhaseOption("jb", "use-original-names:true");
in the program, I got an error:java.lang.IllegalStateException: UnitThrowAnalysis StmtSwitch: type of throw argument is not a RefType!
I think this bug is the same as the bug reported in Issue 1256. The code that causes the error is as follows:Input file The error occurs in all the APKs that I have tested. Here is an example.
Stacktrace The traceback of the error is as follows:
How can I get the original variable names of an APK in Jimple? Thank you for your reply.