[Soot-list] Is this a bug in Soot? Same var, different types!!

Modhi Alsobiehy m99m20 at hotmail.com
Fri Aug 29 01:44:15 EDT 2014


Hi Eric,


thanx for responding!

the first issue has been raised in soot tracker!

any idea why I’m having the second issue!


Thank you,

Modhi..






Sent from Windows Mail





From: Bodden, Eric
Sent: ‎Thursday‎, ‎August‎ ‎28‎, ‎2014 ‎11‎:‎20‎ ‎AM
To: Modhi Alsobeihy
Cc: Steven Arzt, soot-list at CS.McGill.CA, soot-list at sable.mcgill.ca





Hi.

This is certainly a bug. Please raise an issue in the tracker. Can you attach to the issue the Jimple code of class de.underflow.calc.CalculatorPreferenceActivity?

Cheers,
Eric

On 28.08.2014, at 07:35, Modhi Alsobiehy <m99m20 at hotmail.com> wrote:

> Hi all,
> 
> I have the following issues with the attached code which is supposed to run flowdroid and produce the CFG of the apk..
> 
> 1. for most of the apps, I get an exception indicating that one of the values has two types, resulting from line: PackManager.v().runPacks();
> 
> 2. app.runInfoflow(); does not run for some apps, yet running flowdroid on the app from the command line works!..
> 
> Your quick response is deeply appreciated!
> 
> Thank you,
> Modhi
> 
> code snippets:
> --------------------------
>   String apk = "D:/APKs/xxxx.apk";
>   
>   SetupApplication app = new SetupApplication("D:/AndroidADT/adt-bundle-windows-x86_64-20131030/sdk/platforms",apk);
>   
>    try {
>   app.calculateSourcesSinksEntrypoints("D:/FlowDroid/SourcesAndSinks.txt");
>   
>   app.printSinks();
>   
>   ResultsAvailableHandler rah = new ResAvailable();
>   InfoflowResults ir = new InfoflowResults();
>   ir = app.runInfoflow(rah);
>   System.out.println("FlowDroid Results:");
>   System.in.read(); 
>   if(ir != null)
>    ir.printResults(); // here sometimes ir is null
>   System.out.println("FlowDroid Results ends..");
>   System.in.read();
>   
>     } catch (IOException e) {
>   // TODO Auto-generated catch block
>   e.printStackTrace();
>     } catch (XmlPullParserException e) {
>   // TODO Auto-generated catch block
>   e.printStackTrace();
>     }
>  
>    soot.G.reset();
>  
>    Options.v().set_src_prec(Options.src_prec_apk);
>  
>    Options.v().set_process_dir(Collections.singletonList(apk));
>  
>    Options.v().set_android_jars("D:/AndroidADT/adt-bundle-windows-x86_64-20131030/sdk/platforms");
>  
>    Options.v().set_whole_program(true);
>  
>    Options.v().set_allow_phantom_refs(true);
>  
>    Options.v().set_output_format(Options.output_format_none);
>  
>    Options.v().setPhaseOption("cg.spark", "on");
>  
>    Scene.v().loadNecessaryClasses();      
>  
>    SootMethod entryPoint = app.getEntryPointCreator().createDummyMain();
>  
>    Options.v().set_main_class(entryPoint.getSignature());
>  
>    Scene.v().setEntryPoints(Collections.singletonList(entryPoint));
>  
>    System.out.println(entryPoint.getActiveBody());
>   
>    PackManager.v().runPacks(); // the exception always refers to this line
> ------------------------------------------------------------
> 
> the exception I got:
> ---------------------------
>    
> Exception in thread "main" java.lang.RuntimeException: Value $r0 of type de.underflow.calc.CalculatorPreferenceActivity previously had type android.os.Bundle
>  at soot.jimple.spark.pag.PAG.makeLocalVarNode(PAG.java:543)
>  at soot.jimple.spark.builder.MethodNodeFactory.caseLocal(MethodNodeFactory.java:219)
>  at soot.jimple.internal.JimpleLocal.apply(JimpleLocal.java:136)
>  at soot.jimple.spark.builder.MethodNodeFactory$1.caseAssignStmt(MethodNodeFactory.java:76)
>  at soot.jimple.internal.JAssignStmt.apply(JAssignStmt.java:238)
>  at soot.jimple.spark.builder.MethodNodeFactory.handleStmt(MethodNodeFactory.java:69)
>  at soot.jimple.spark.pag.MethodPAG.buildNormal(MethodPAG.java:179)
>  at soot.jimple.spark.pag.MethodPAG.build(MethodPAG.java:148)
>  at soot.jimple.spark.solver.OnFlyCallGraph.processReachables(OnFlyCallGraph.java:64)
>  at soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:56)
>  at soot.jimple.spark.builder.ContextInsensitiveBuilder.build(ContextInsensitiveBuilder.java:77)
>  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.PackManager.runWholeProgramPacks(PackManager.java:538)
>  at soot.PackManager.runPacksNormally(PackManager.java:443)
>  at soot.PackManager.runPacks(PackManager.java:389)
>  at apkCFG.CFG.main(CFG.java:79)
> ------------------------------------------
> For another app:
> -----------------------
> Exception in thread "main" java.lang.RuntimeException: Value $r2 of type com.google.ads.AdActivity previously had type com.google.ads.AdSize
>  at soot.jimple.spark.pag.PAG.makeLocalVarNode(PAG.java:543)
>  at soot.jimple.spark.builder.MethodNodeFactory.caseLocal(MethodNodeFactory.java:219)
>  at soot.jimple.internal.JimpleLocal.apply(JimpleLocal.java:136)
>  at soot.jimple.spark.builder.MethodNodeFactory.getNode(MethodNodeFactory.java:60)
>  at soot.jimple.spark.pag.PAG.addCallTarget(PAG.java:1045)
>  at soot.jimple.spark.pag.PAG.addCallTarget(PAG.java:781)
>  at soot.jimple.spark.solver.OnFlyCallGraph.processCallEdges(OnFlyCallGraph.java:74)
>  at soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:57)
>  at soot.jimple.spark.solver.PropWorklist.handleVarNode(PropWorklist.java:122)
>  at soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:52)
>  at soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:152)
>  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.PackManager.runWholeProgramPacks(PackManager.java:538)
>  at soot.PackManager.runPacksNormally(PackManager.java:443)
>  at soot.PackManager.runPacks(PackManager.java:389)
>  at apkCFG.CFG.main(CFG.java:79)
> 
> 
> _______________________________________________
> Soot-list mailing list
> Soot-list at CS.McGill.CA
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list

--
Prof. Eric Bodden, Ph.D., http://sse.ec-spride.de/ http://bodden.de/
Head of Secure Software Engineering  at Fraunhofer SIT, TU Darmstadt and EC SPRIDE
Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20140829/d1f8359a/attachment-0003.html 


More information about the Soot-list mailing list