[Soot-list] Is this a bug in Soot? Same var, different types!!
Bodden, Eric
eric.bodden at sit.fraunhofer.de
Thu Aug 28 12:20:27 EDT 2014
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 --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
Url : http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20140828/6ac1413a/attachment-0001.bin
More information about the Soot-list
mailing list