[Soot-list] Error: Class is at resolving level DANGLING
Steven Arzt
Steven.Arzt at cased.de
Tue Aug 4 05:12:59 EDT 2015
Hi,
The APK file is a bit strange. It does contain inner classes located inside the AdColonyBrowser class, but the outer class AdColonyBrowser itself is missing. At least from how I read the specification of the InnerClass annotation in Dalvik, this is not valid. However, since insisting on the spec doesn’t help in practice, I added a hack to FlowDroid: After reading in all the classes, it looks for any dangling pointers to non-existent classes and treats them as phantoms. I just committed this change, a new nightly build will be available by tomorrow.
Best regards,
Steven
Von: soot-list-bounces at CS.McGill.CA [mailto:soot-list-bounces at CS.McGill.CA] Im Auftrag von R.F.
Gesendet: Montag, 3. August 2015 16:24
An: soot-list at CS.McGill.CA
Betreff: [Soot-list] Error: Class is at resolving level DANGLING
Hi all,
I was analyzing the following APK using Soot, Soot Infoflow and Soot Infoflow Android.
https://drive.google.com/file/d/0B0ceYAgUVEZbMkZ5UHVUR0JfVU0/view?usp=sharing
However, the following exception is thrown:
Exception in thread "main" java.lang.RuntimeException: This operation requires resolving level SIGNATURES but com.fusepowered.ac.AdColonyBrowser is at resolving level DANGLING
If you are extending Soot, try to add the following call before calling soot.Main.main(..):
Scene.v().addBasicClass(com.fusepowered.ac.AdColonyBrowser,SIGNATURES);
Otherwise, try whole-program mode (-w).
at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:152)
at soot.SootClass.checkLevel(SootClass.java:138)
at soot.SootClass.getMethods(SootClass.java:449)
at soot.jimple.spark.builder.ContextInsensitiveBuilder.handleClass(ContextInsensitiveBuilder.java:106)
at soot.jimple.spark.builder.ContextInsensitiveBuilder.build(ContextInsensitiveBuilder.java:85)
at soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:84)
at soot.SceneTransformer.transform(SceneTransformer.java:39)
at soot.Transform.apply(Transform.java:90)
at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:49)
at soot.Pack.apply(Pack.java:116)
at soot.jimple.infoflow.android.SetupApplication.calculateCallbackMethods(SetupApplication.java:467)
at soot.jimple.infoflow.android.SetupApplication.calculateSourcesSinksEntrypoints(SetupApplication.java:378)
at soot.jimple.infoflow.android.SetupApplication.calculateSourcesSinksEntrypoints(SetupApplication.java:344)
at soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Test.java:507)
at soot.jimple.infoflow.android.TestApps.Test.main(Test.java:210)
I already set whole program mode with "Options.v().set_whole_program(true);", and "Scene.v().addBasicClass("com.fusepowered.ac.AdColonyBrowser", SootClass.SIGNATURES);" does not help either.
My setup is the latest source code on the develop branch (or default branch on GitHub) of Jasmin (https://github.com/Sable/jasmin), Heros (https://github.com/Sable/heros), Soot (https://github.com/Sable/soot), Soot Infoflow (https://github.com/secure-software-engineering/soot-infoflow) and Soot Infoflow Android (https://github.com/secure-software-engineering/soot-infoflow-android). My arguments are "/PATH/TO/APK /PATH/TO/android-platforms". The "android-platform" directory is also a clone of https://github.com/Sable/android-platforms. The JRE used by Eclipse is Oracle Java 7 on Ubuntu 15.04 64-bit (/usr/lib/jvm/java-7-oracle).
Can you reproduce the issue?
Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20150804/77f939a1/attachment.html
More information about the Soot-list
mailing list