[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