[Soot-list] flowdroid with soot-infoflow-summaries works failed
輝先生
wangaohui926271 at gmail.com
Mon Sep 19 03:02:17 EDT 2016
Hi all,
I make small changes to flowdroid so that flowdroid only track user
input in EditText. *When I use flowdroid like before with EasyTaintWrapper,
it works well.*
But when I use the flowdroid with *soot-infoflow-summaries*, the jars
are same with before, but some exceptions occur.
Commandline are:
*1)* java -Xmx64g -cp
guava-18.0.jar: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:AXMLPrinter2.jar:dexlib2-2.1.3-a5d82813.jar:util-2.1.3-a5d82813.jar:asm-debug-all-5.1.jar
soot.jimple.infoflow.android.TestApps.Test xxxx.apk
/home/wah/android/tools/platforms --pathalgo contextsensitive
--callbackanalyzer FAST --noexceptions --aliasflowins --layoutmode pwd
--nostatic --noarraysize
*2) *java -Xmx64g -cp
guava-18.0.jar: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:AXMLPrinter2.jar:dexlib2-2.1.3-a5d82813.jar:util-2.1.3-a5d82813.jar:asm-debug-all-5.1.jar:
*soot-infoflow-summaries.jar* soot.jimple.infoflow.android.TestApps.Test
xxxx.apk /home/wah/android/tools/platforms --pathalgo contextsensitive
--callbackanalyzer FAST --noexceptions --aliasflowins --layoutmode pwd
--nostatic --noarraysize --notypetightening *--summarypath
./summariesAndroid/*
Log are here:
[main] INFO soot.jimple.infoflow.data.FlowDroidMemoryManager - Initializing
FlowDroid memory manager...
[main] WARN soot.jimple.infoflow.android.InfoflowAndroidConfiguration -
Static field tracking is disabled, results may be incomplete
[main] WARN soot.jimple.infoflow.android.InfoflowAndroidConfiguration -
Using flow-insensitive alias tracking, results may be imprecise
[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration -
Implicit flow tracking is NOT enabled
[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration -
Exceptional flow tracking is NOT enabled
[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration -
Running with a maximum access path length of 1
[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration -
Using path-agnostic result collection
[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration -
Recursive access path shortening is enabled
[main] INFO soot.jimple.infoflow.android.InfoflowAndroidConfiguration -
Taint analysis enabled: true
[main] INFO soot.jimple.infoflow.Infoflow - Looking for sources and sinks...
[main] INFO soot.jimple.infoflow.Infoflow - Source lookup done, found 15
sources and 3 sinks.
*[Thread-29] ERROR heros.solver.IDESolver - Worker thread execution failed:
unnumbered*
*java.lang.RuntimeException: unnumbered*
at
soot.util.SmallNumberedMap.findPosition(SmallNumberedMap.java:119)
at soot.util.SmallNumberedMap.get(SmallNumberedMap.java:51)
at soot.SootClass.declaresMethod(SootClass.java:368)
at soot.SootClass.declaresMethod(SootClass.java:397)
at soot.Scene.grabMethod(Scene.java:725)
at soot.Scene.containsMethod(Scene.java:731)
at
soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.getFlowSummariesForGap(SummaryTaintWrapper.java:789)
at
soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.applyFlowsIterative(SummaryTaintWrapper.java:615)
at
soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.computeTaintsForMethod(SummaryTaintWrapper.java:580)
at
soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.getTaintsForMethod(SummaryTaintWrapper.java:493)
at
soot.jimple.infoflow.problems.rules.WrapperPropagationRule.computeWrapperTaints(WrapperPropagationRule.java:96)
at
soot.jimple.infoflow.problems.rules.WrapperPropagationRule.propagateCallToReturnFlow(WrapperPropagationRule.java:136)
at
soot.jimple.infoflow.problems.rules.PropagationRuleManager.applyCallToReturnFlowFunction(PropagationRuleManager.java:172)
at
soot.jimple.infoflow.problems.InfoflowProblem$1$4.computeTargetsInternal(InfoflowProblem.java:785)
at
soot.jimple.infoflow.problems.InfoflowProblem$1$4.computeTargets(InfoflowProblem.java:756)
at
soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeCallToReturnFlowFunction(InfoflowSolver.java:94)
at
soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeCallToReturnFlowFunction(InfoflowSolver.java:1)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:319)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$0(IFDSSolver.java:245)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:634)
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:213)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.awaitCompletionComputeValuesAndShutdown(IFDSSolver.java:188)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.solve(IFDSSolver.java:164)
at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:458)
at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:152)
at
soot.jimple.infoflow.android.SetupApplication.runInfoflow(SetupApplication.java:848)
at
soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Test.java:708)
at soot.jimple.infoflow.android.TestApps.Test.main(Test.java:297)
Exception in thread "main" java.lang.RuntimeException: There were
exceptions during IFDS analysis. Exiting.
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:219)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.awaitCompletionComputeValuesAndShutdown(IFDSSolver.java:188)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.solve(IFDSSolver.java:164)
at soot.jimple.infoflow.Infoflow.runAnalysis(Infoflow.java:458)
at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:152)
at
soot.jimple.infoflow.android.SetupApplication.runInfoflow(SetupApplication.java:848)
at
soot.jimple.infoflow.android.TestApps.Test.runAnalysis(Test.java:708)
at soot.jimple.infoflow.android.TestApps.Test.main(Test.java:297)
*Caused by: java.lang.RuntimeException: unnumbered*
at
soot.util.SmallNumberedMap.findPosition(SmallNumberedMap.java:119)
at soot.util.SmallNumberedMap.get(SmallNumberedMap.java:51)
at soot.SootClass.declaresMethod(SootClass.java:368)
at soot.SootClass.declaresMethod(SootClass.java:397)
at soot.Scene.grabMethod(Scene.java:725)
at soot.Scene.containsMethod(Scene.java:731)
at
soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.getFlowSummariesForGap(SummaryTaintWrapper.java:789)
at
soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.applyFlowsIterative(SummaryTaintWrapper.java:615)
at
soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.computeTaintsForMethod(SummaryTaintWrapper.java:580)
at
soot.jimple.infoflow.methodSummary.taintWrappers.SummaryTaintWrapper.getTaintsForMethod(SummaryTaintWrapper.java:493)
at
soot.jimple.infoflow.problems.rules.WrapperPropagationRule.computeWrapperTaints(WrapperPropagationRule.java:96)
at
soot.jimple.infoflow.problems.rules.WrapperPropagationRule.propagateCallToReturnFlow(WrapperPropagationRule.java:136)
at
soot.jimple.infoflow.problems.rules.PropagationRuleManager.applyCallToReturnFlowFunction(PropagationRuleManager.java:172)
at
soot.jimple.infoflow.problems.InfoflowProblem$1$4.computeTargetsInternal(InfoflowProblem.java:785)
at
soot.jimple.infoflow.problems.InfoflowProblem$1$4.computeTargets(InfoflowProblem.java:756)
at
soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeCallToReturnFlowFunction(InfoflowSolver.java:94)
at
soot.jimple.infoflow.solver.fastSolver.InfoflowSolver.computeCallToReturnFlowFunction(InfoflowSolver.java:1)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:319)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$0(IFDSSolver.java:245)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:634)
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)
....
[Thread-48] ERROR *heros.solver.IDESolver - Worker thread execution failed*:
Task
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask at 33fd50e0
rejected from heros.solver.CountingThreadPoolExecutor at 2fe3068c[Shutting
down, pool size = 64, active threads = 58, queued tasks = 0, completed
tasks = 19397]
java.util.concurrent.RejectedExecutionException: Task
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask at 33fd50e0
rejected from heros.solver.CountingThreadPoolExecutor at 2fe3068c[Shutting
down, pool size = 64, active threads = 58, queued tasks = 0, completed
tasks = 19397]
at
java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2047)
at
java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823)
at
java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1364)
at
heros.solver.CountingThreadPoolExecutor.execute(CountingThreadPoolExecutor.java:51)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.scheduleEdgeProcessing(IFDSSolver.java:233)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.propagate(IFDSSolver.java:545)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.propagate(IFDSSolver.java:508)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:477)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$1(IFDSSolver.java:465)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:641)
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)
[Thread-50] ERROR heros.solver.IDESolver - Worker thread execution failed:
Task
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask at 2de31636
rejected from heros.solver.CountingThreadPoolExecutor at 2fe3068c[Shutting
down, pool size = 59, active threads = 57, queued tasks = 0, completed
tasks = 19398]
[Thread-4] ERROR heros.solver.IDESolver - Worker thread execution failed:
Task
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask at f288b75c
rejected from heros.solver.CountingThreadPoolExecutor at 2fe3068c[Shutting
down, pool size = 59, active threads = 57, queued tasks = 0, completed
tasks = 19398]
[Thread-23] ERROR heros.solver.IDESolver - Worker thread execution failed:
Task
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask at 6a1caec5
rejected from heros.solver.CountingThreadPoolExecutor at 2fe3068c[Shutting
down, pool size = 60, active threads = 57, queued tasks = 0, completed
tasks = 19398]
[Thread-34] ERROR heros.solver.IDESolver - Worker thread execution failed:
Task
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask at 8ad70b09
rejected from heros.solver.CountingThreadPoolExecutor at 2fe3068c[Shutting
down, pool size = 60, active threads = 57, queued tasks = 0, completed
tasks = 19398]
java.util.concurrent.RejectedExecutionException: Task
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask at 8ad70b09
rejected from heros.solver.CountingThreadPoolExecutor at 2fe3068c[Shutting
down, pool size = 60, active threads = 57, queued tasks = 0, completed
tasks = 19398]
at
java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2047)
at
java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823)
at
java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1364)
at
heros.solver.CountingThreadPoolExecutor.execute(CountingThreadPoolExecutor.java:51)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.scheduleEdgeProcessing(IFDSSolver.java:233)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.propagate(IFDSSolver.java:545)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.propagate(IFDSSolver.java:508)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processNormalFlow(IFDSSolver.java:477)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$1(IFDSSolver.java:465)
at
soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:641)
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)
[Thread-1] ERROR heros.solver.IDESolver - Worker thread execution failed: *This
operation requires resolving level HIERARCHY but
java.util.HashMap$HashIterator is at resolving level DANGLING*
*If you are extending Soot, try to add the following call before calling
soot.Main.main(..):*
Scene.v().addBasicClass(java.util.HashMap$HashIterator,HIERARCHY);
Otherwise, try whole-program mode (-w).
java.lang.RuntimeException: This operation requires resolving level
HIERARCHY but java.util.HashMap$HashIterator is at resolving level DANGLING
If you are extending Soot, try to add the following call before calling
soot.Main.main(..):
Scene.v().addBasicClass(java.util.HashMap$HashIterator,HIERARCHY);
Otherwise, try whole-program mode (-w).
.....
[Thread-55] ERROR heros.solver.IDESolver - *Worker thread execution failed:
Scene changed for Hierarchy*!
[Thread-12] ERROR heros.solver.IDESolver - Worker thread execution failed:
no active FastHierarchy present for scene
[Thread-70] ERROR heros.solver.IDESolver - Worker thread execution failed:
This operation requires resolving level HIERARCHY but
java.util.HashMap$HashIterator is at resolving level DANGLING
If you are extending Soot, try to add the following call before calling
soot.Main.main(..):
Scene.v().addBasicClass(java.util.HashMap$HashIterator,HIERARCHY);
Otherwise, try whole-program mode (-w).
[Thread-7] ERROR heros.solver.IDESolver - Worker thread execution failed:
Scene changed for Hierarchy!
[Thread-48] ERROR heros.solver.IDESolver - Worker thread execution failed:
Scene changed for Hierarchy!
[Thread-15] ERROR heros.solver.IDESolver - Worker thread execution failed:
Scene changed for Hierarchy!
[Thread-62] ERROR heros.solver.IDESolver - Worker thread execution failed:
Scene changed for Hierarchy!
[Thread-57] ERROR heros.solver.IDESolver - Worker thread execution failed:
Scene changed for Hierarchy!
[Thread-32] ERROR heros.solver.IDESolver - Worker thread execution failed:
Scene changed for Hierarchy!
[Thread-77] ERROR heros.solver.IDESolver - Worker thread execution failed:
Scene changed for Hierarchy!
Could you give me some suggestions according to the log? Any suggestions
are appreciated.
Best regards,
hxs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20160919/9eeb35f3/attachment-0001.html
More information about the Soot-list
mailing list