[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