[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