secure-software-engineering / FlowDroid

FlowDroid Static Data Flow Tracker
GNU Lesser General Public License v2.1
1.04k stars 296 forks source link

FlowDroid 2.7 crash with app #271

Open pokerfacett opened 4 years ago

pokerfacett commented 4 years ago

Hi when use the FlowDroid to detect some app I got crashes as follow.Could you help to resolve this?

[Thread-5] ERROR heros.solver.CountingThreadPoolExecutor - Worker thread execution failed: No body for method <com.qq.e.comm.plugin.s.d: java.lang.String a()>
java.lang.IllegalStateException: No body for method <com.qq.e.comm.plugin.s.d: java.lang.String a()>
    at soot.toolkits.graph.ExceptionalUnitGraph.buildHeadsAndTails(ExceptionalUnitGraph.java:639)
    at soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:241)
    at soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:135)
    at soot.dexpler.DexReturnValuePropagator.internalTransform(DexReturnValuePropagator.java:55)
    at soot.BodyTransformer.transform(BodyTransformer.java:55)
    at soot.BodyTransformer.transform(BodyTransformer.java:59)
    at soot.dexpler.DexBody.jimplify(DexBody.java:633)
    at soot.dexpler.DexMethod$1.getBody(DexMethod.java:119)
    at soot.SootMethod.retrieveActiveBody(SootMethod.java:402)
    at soot.PackManager$3.run(PackManager.java:1293)
    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-11] ERROR heros.solver.CountingThreadPoolExecutor - Worker thread execution failed: No body for method <com.qq.e.comm.plugin.s.d: void <clinit>()>
java.lang.IllegalStateException: No body for method <com.qq.e.comm.plugin.s.d: void <clinit>()>
    at soot.toolkits.graph.ExceptionalUnitGraph.buildHeadsAndTails(ExceptionalUnitGraph.java:639)
    at soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:241)
    at soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:135)
    at soot.dexpler.DexReturnValuePropagator.internalTransform(DexReturnValuePropagator.java:55)
    at soot.BodyTransformer.transform(BodyTransformer.java:55)
    at soot.BodyTransformer.transform(BodyTransformer.java:59)
    at soot.dexpler.DexBody.jimplify(DexBody.java:633)
    at soot.dexpler.DexMethod$1.getBody(DexMethod.java:119)
    at soot.SootMethod.retrieveActiveBody(SootMethod.java:402)
    at soot.PackManager$3.run(PackManager.java:1293)
    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-6] ERROR heros.solver.CountingThreadPoolExecutor - Worker thread execution failed: error: backward analysis on an empty entry set.
java.lang.RuntimeException: error: backward analysis on an empty entry set.
    at soot.toolkits.scalar.FlowAnalysis$Orderer.newUniverse(FlowAnalysis.java:183)
    at soot.toolkits.scalar.FlowAnalysis.doAnalysis(FlowAnalysis.java:540)
    at soot.toolkits.scalar.BackwardFlowAnalysis.doAnalysis(BackwardFlowAnalysis.java:50)
    at soot.toolkits.scalar.SimpleLiveLocals.<init>(SimpleLiveLocals.java:70)
    at soot.toolkits.scalar.FastColorer.assignColorsToLocals(FastColorer.java:176)
    at soot.toolkits.scalar.LocalPacker.internalTransform(LocalPacker.java:127)
    at soot.BodyTransformer.transform(BodyTransformer.java:55)
    at soot.BodyTransformer.transform(BodyTransformer.java:59)
    at soot.dexpler.DexBody.jimplify(DexBody.java:761)
    at soot.dexpler.DexMethod$1.getBody(DexMethod.java:119)
    at soot.SootMethod.retrieveActiveBody(SootMethod.java:402)
    at soot.PackManager$3.run(PackManager.java:1293)
    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-5" java.lang.IllegalStateException: No body for method <com.qq.e.comm.plugin.s.d: java.lang.String a()>
    at soot.toolkits.graph.ExceptionalUnitGraph.buildHeadsAndTails(ExceptionalUnitGraph.java:639)
    at soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:241)
    at soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:135)
    at soot.dexpler.DexReturnValuePropagator.internalTransform(DexReturnValuePropagator.java:55)
    at soot.BodyTransformer.transform(BodyTransformer.java:55)
    at soot.BodyTransformer.transform(BodyTransformer.java:59)
    at soot.dexpler.DexBody.jimplify(DexBody.java:633)
    at soot.dexpler.DexMethod$1.getBody(DexMethod.java:119)
    at soot.SootMethod.retrieveActiveBody(SootMethod.java:402)
    at soot.PackManager$3.run(PackManager.java:1293)
    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.RuntimeException: error: backward analysis on an empty entry set.
    at soot.toolkits.scalar.FlowAnalysis$Orderer.newUniverse(FlowAnalysis.java:183)
    at soot.toolkits.scalar.FlowAnalysis.doAnalysis(FlowAnalysis.java:540)
    at soot.toolkits.scalar.BackwardFlowAnalysis.doAnalysis(BackwardFlowAnalysis.java:50)
    at soot.toolkits.scalar.SimpleLiveLocals.<init>(SimpleLiveLocals.java:70)
    at soot.toolkits.scalar.FastColorer.assignColorsToLocals(FastColorer.java:176)
    at soot.toolkits.scalar.LocalPacker.internalTransform(LocalPacker.java:127)
    at soot.BodyTransformer.transform(BodyTransformer.java:55)
    at soot.BodyTransformer.transform(BodyTransformer.java:59)
    at soot.dexpler.DexBody.jimplify(DexBody.java:761)
    at soot.dexpler.DexMethod$1.getBody(DexMethod.java:119)
    at soot.SootMethod.retrieveActiveBody(SootMethod.java:402)
    at soot.PackManager$3.run(PackManager.java:1293)
    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.RuntimeException: error: backward analysis on an empty entry set.
    at soot.toolkits.scalar.FlowAnalysis$Orderer.newUniverse(FlowAnalysis.java:183)
    at soot.toolkits.scalar.FlowAnalysis.doAnalysis(FlowAnalysis.java:540)
    at soot.toolkits.scalar.BackwardFlowAnalysis.doAnalysis(BackwardFlowAnalysis.java:50)
    at soot.toolkits.scalar.SimpleLiveLocals.<init>(SimpleLiveLocals.java:70)
    at soot.toolkits.scalar.FastColorer.assignColorsToLocals(FastColorer.java:176)
    at soot.toolkits.scalar.LocalPacker.internalTransform(LocalPacker.java:127)
    at soot.BodyTransformer.transform(BodyTransformer.java:55)
    at soot.BodyTransformer.transform(BodyTransformer.java:59)
    at soot.dexpler.DexBody.jimplify(DexBody.java:761)
    at soot.dexpler.DexMethod$1.getBody(DexMethod.java:119)
    at soot.SootMethod.retrieveActiveBody(SootMethod.java:402)
    at soot.PackManager$3.run(PackManager.java:1293)
    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)
kxdkxd commented 1 year ago

Same Problem. [main] INFO soot.jimple.infoflow.android.SetupApplication - Constructing the callgraph... [main] ERROR soot.jimple.infoflow.android.SetupApplication - Could not calculate callback methods java.lang.IllegalStateException: No body for method <bykvm_19do.bykvm_19do.bykvm_if122.bykvm_19do.bykvm_long108.b: void <clinit>()> at soot.toolkits.graph.ExceptionalUnitGraph.buildHeadsAndTails(ExceptionalUnitGraph.java:626) at soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:231) at soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:127) at soot.toolkits.graph.ExceptionalUnitGraphFactory.newExceptionalUnitGraph(ExceptionalUnitGraphFactory.java:55) at soot.toolkits.graph.ExceptionalUnitGraphFactory.createExceptionalUnitGraph(ExceptionalUnitGraphFactory.java:50) at soot.dexpler.DexReturnValuePropagator.internalTransform(DexReturnValuePropagator.java:58) at soot.BodyTransformer.transform(BodyTransformer.java:52) at soot.BodyTransformer.transform(BodyTransformer.java:56) at soot.dexpler.DexBody.jimplify(DexBody.java:739) at soot.dexpler.DexMethod$1.getBody(DexMethod.java:120) at soot.SootMethod.retrieveActiveBody(SootMethod.java:446) at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:791) at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:287) at soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:105) at soot.jimple.spark.solver.PropWorklist.handleVarNode(PropWorklist.java:158) at soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:81) at soot.jimple.spark.SparkTransformer.propagatePAG(SparkTransformer.java:238) at soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:155) at soot.SceneTransformer.transform(SceneTransformer.java:36) at soot.Transform.apply(Transform.java:105) at soot.RadioScenePack.internalApply(RadioScenePack.java:64) at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:61) at soot.Pack.apply(Pack.java:118) at soot.jimple.infoflow.android.SetupApplication.constructCallgraphInternal(SetupApplication.java:600) at soot.jimple.infoflow.android.SetupApplication.calculateCallbackMethods(SetupApplication.java:718) at soot.jimple.infoflow.android.SetupApplication.calculateCallbacks(SetupApplication.java:502) at soot.jimple.infoflow.android.SetupApplication.calculateCallbacks(SetupApplication.java:449) at soot.jimple.infoflow.android.SetupApplication.processEntryPoint(SetupApplication.java:1501) at soot.jimple.infoflow.android.SetupApplication.runInfoflow(SetupApplication.java:1467) at soot.jimple.infoflow.android.SetupApplication.runInfoflow(SetupApplication.java:1414) at soot.jimple.infoflow.cmd.MainClass.run(MainClass.java:360) at soot.jimple.infoflow.cmd.MainClass.main(MainClass.java:254)