[Soot-list] Flowdroid exception on analyzing apk

Edward Suhkoi edward.suhkoi at gmail.com
Wed Mar 4 05:17:00 EST 2015


Hi:

I tried to run nightly build version jars from the repo, with command-line
like this:

java -Xmx300g -cp
soot-trunk.jar:soot-infoflow.jar:soot-infoflow-android.jar:slf4j-api-1.7.5.jar:slf4j-simple-1.7.5.jar:axml-2.0.jar
soot.jimple.infoflow.android.TestApps.Test
/home/test/com.dropbox.android-2.apk
 /home/test/android-sdk-linux/platforms/ --nocallbacks --layoutmode none

However I'm getting exceptions as follows:

[Call Graph] For information on where the call graph may be incomplete, use
the verbose option to the cg phase.
[Spark] Pointer Assignment Graph in 0.6 seconds.
[Spark] Type masks in 0.1 seconds.
[Spark] Pointer Graph simplified in 0.0 seconds.
[Spark] Propagation in 40.3 seconds.
[Spark] Solution found in 40.3 seconds.
[main] INFO
soot.jimple.infoflow.util.InterproceduralConstantValuePropagator - Removing
side-effect free methods is enabled
Removed 2479 call edges
[main] INFO soot.jimple.infoflow.Infoflow - Dead code elimination took
2.932016853 seconds
[main] INFO soot.jimple.infoflow.Infoflow - Callgraph has 39330 edges
[main] INFO soot.jimple.infoflow.Infoflow - Looking for sources and sinks...
[main] INFO soot.jimple.infoflow.Infoflow - Source lookup done, found 551
sources and 272 sinks.

[Thread-6] ERROR heros.solver.IDESolver - Worker thread execution failed:
> soot.RefType cannot be cast to soot.ArrayType
> [Thread-2] ERROR heros.solver.IDESolver - Worker thread execution failed:
> soot.RefType cannot be cast to soot.ArrayType
> [Thread-4] ERROR heros.solver.IDESolver - Worker thread execution failed:
> soot.RefType cannot be cast to soot.ArrayType
> java.lang.ClassCastException: soot.RefType cannot be cast to soot.ArrayType
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.computeAliases(BackwardsInfoflowProblem.java:278)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.access$100(BackwardsInfoflowProblem.java:84)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1$1.computeTargets(BackwardsInfoflowProblem.java:343)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:76)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:35)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:467)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:623)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> java.lang.ClassCastException: soot.RefType cannot be cast to soot.ArrayType
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.computeAliases(BackwardsInfoflowProblem.java:278)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.access$100(BackwardsInfoflowProblem.java:84)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1$1.computeTargets(BackwardsInfoflowProblem.java:343)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:76)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:35)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:467)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:623)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> java.lang.ClassCastException: soot.RefType cannot be cast to soot.ArrayType
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.computeAliases(BackwardsInfoflowProblem.java:278)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.access$100(BackwardsInfoflowProblem.java:84)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1$1.computeTargets(BackwardsInfoflowProblem.java:343)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:76)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:35)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:467)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:623)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> java.lang.InterruptedException
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:998)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
> at heros.solver.CountLatch.awaitZero(CountLatch.java:75)
> at
> heros.solver.CountingThreadPoolExecutor.awaitCompletion(CountingThreadPoolExecutor.java:79)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:209)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.awaitCompletionComputeValuesAndShutdown(IFDSSolver.java:184)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.solve(IFDSSolver.java:160)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.solve(InfoflowSolver.java:108)
> at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:676)
> at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:322)
> at soot.jimple.infoflow.android.SetupApplication.runInfoflow(Unknown
> Source)
> at soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Unknown Source)
> at soot.jimple.infoflow.android.TestApps.Test.main(Unknown Source)
> Exception in thread "main" Exception in thread "Thread-2"
> java.lang.ClassCastException: soot.RefType cannot be cast to soot.ArrayType
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.computeAliases(BackwardsInfoflowProblem.java:278)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.access$100(BackwardsInfoflowProblem.java:84)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1$1.computeTargets(BackwardsInfoflowProblem.java:343)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:76)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:35)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:467)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:623)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Exception in thread "Thread-6" java.lang.ClassCastException: soot.RefType
> cannot be cast to soot.ArrayType
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.computeAliases(BackwardsInfoflowProblem.java:278)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.access$100(BackwardsInfoflowProblem.java:84)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1$1.computeTargets(BackwardsInfoflowProblem.java:343)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:76)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:35)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:467)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:623)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Exception in thread "Thread-4" java.lang.RuntimeException: There were
> exceptions during IFDS analysis. Exiting.
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:215)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.awaitCompletionComputeValuesAndShutdown(IFDSSolver.java:184)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.solve(IFDSSolver.java:160)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.solve(InfoflowSolver.java:108)
> at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:676)
> at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:322)
> at soot.jimple.infoflow.android.SetupApplication.runInfoflow(Unknown
> Source)
> at soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Unknown Source)
> at soot.jimple.infoflow.android.TestApps.Test.main(Unknown Source)
> Caused by: java.lang.ClassCastException: soot.RefType cannot be cast to
> soot.ArrayType
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.computeAliases(BackwardsInfoflowProblem.java:278)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.access$100(BackwardsInfoflowProblem.java:84)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1$1.computeTargets(BackwardsInfoflowProblem.java:343)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:76)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:35)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:467)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:623)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> java.lang.ClassCastException: soot.RefType cannot be cast to soot.ArrayType
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.computeAliases(BackwardsInfoflowProblem.java:278)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1.access$100(BackwardsInfoflowProblem.java:84)
> at
> soot.jimple.infoflow.problems.BackwardsInfoflowProblem$1$1.computeTargets(BackwardsInfoflowProblem.java:343)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:76)
> at
> soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeNormalFlowFunction(InfoflowSolver.java:35)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:467)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
> at
> soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:623)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
>
>
Test apk attached at http://box.myqsc.com/-43762846
Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20150304/cf34d254/attachment-0001.html 


More information about the Soot-list mailing list