FlowDroid Status

Environment:
4  Intel(R) Xeon(R) CPU E5-2603 0 @ 1.80GHz
16GB  with -Xmx14000M -Xms12000M  Oracle java 1.7 x64 
Ubuntu 14.04 LTS 

time java -Xmx14000M -Xms12000M -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 ~/apks/com.alawar.dragonisle.apk ~/android-sdk-linux/platforms

hugorunner.apk:
time java -Xmx14000M -Xms12000M -cp FlowDroid.jar soot.jimple.infoflow.android.TestApps.Test ~/hugorunner.apk ~/android-sdk-linux/platforms

com.alawar.dragonisle.apk
[pool-1-thread-3] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Collections.singleton(Collections.java:3296)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:281)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
        at heros.solver.CountLatch.awaitZero(CountLatch.java:75)
        at heros.solver.CountingThreadPoolExecutor.awaitCompletion(CountingThreadPoolExecutor.java:70)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:203)
        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:440)
        at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:285)
        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 "pool-1-thread-3" Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Collections.singleton(Collections.java:3296)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:281)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: There were exceptions during IFDS analysis. Exiting.
        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:440)
        at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:285)
        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.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Collections.singleton(Collections.java:3296)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:281)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

real    66m10.010s
user    244m35.297s
sys     0m50.491s

time java -Xmx14000M -Xms12000M -cp FlowDroid.jar soot.jimple.infoflow.android.TestApps.Test ~/apks/com.alawar.dragonisle.apk ~/android-sdk-linux/platforms  --aplength 2
[pool-2-thread-3] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
[pool-2-thread-1] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.LinkedList.addAll(LinkedList.java:422)
        at java.util.LinkedList.addAll(LinkedList.java:385)
        at soot.jimple.infoflow.data.SourceContextAndPath.clone(SourceContextAndPath.java:69)
        at soot.jimple.infoflow.data.SourceContextAndPath.extendPath(SourceContextAndPath.java:41)
        at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:324)
        at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:332)[pool-2-thread-2] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.LinkedList.addAll(LinkedList.java:422)
        at java.util.LinkedList.addAll(LinkedList.java:385)
        at soot.jimple.infoflow.data.SourceContextAndPath.clone(SourceContextAndPath.java:69)
        at soot.jimple.infoflow.data.SourceContextAndPath.extendPath(SourceContextAndPath.java:41)
        at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:324)
        at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:332)
        at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:323)
        at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:323)
        at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:332)
        at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:323)
        at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:332)
        at soot.jimple.infoflow.data.Abstraction.getPaths(Abstraction.java:323)
[pool-2-thread-4] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
[pool-2-thread-5] ERROR heros.solver.IDESolver - Worker thread execution failed: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "pool-2-thread-1" java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "pool-2-thread-2" java.lang.OutOfMemoryError: GC overhead limit exceeded
[main] ERROR soot.jimple.infoflow.Infoflow - Could not wait for path executor completion: {0}
Exception in thread "pool-2-thread-3" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "pool-2-thread-5"

java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
        at heros.solver.CountLatch.awaitZero(CountLatch.java:75)
        at heros.solver.CountingThreadPoolExecutor.awaitCompletion(CountingThreadPoolExecutor.java:67)
        at soot.jimple.infoflow.Infoflow.computeTaintPaths(Infoflow.java:516)Exception in thread "pool-2-thread-4" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded



pop_candy.apk http://play.mob.org/game/pop_candy.html [ANDROID 2.3]

time java -Xmx14000M -Xms12000M -cp FlowDroid.jar soot.jimple.infoflow.android.TestApps.Test ~/pop_candy.apk ~/android-sdk-linux/platforms


[main] INFO soot.jimple.infoflow.Infoflow - Callgraph has 4546 edges
[main] INFO soot.jimple.infoflow.Infoflow - Looking for sources and sinks...



java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.ArrayList.iterator(ArrayList.java:814)
        at java.util.Collections$UnmodifiableCollection$1.<init>(Collections.java:1064)
        at java.util.Collections$UnmodifiableCollection.iterator(Collections.java:1063)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:277)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
        at heros.solver.CountLatch.awaitZero(CountLatch.java:75)
        at soot.jimple.infoflow.problems.InfoflowProblem$1$2.createNewTaintOnAssignment(InfoflowProblem.java:600)
        at soot.jimple.infoflow.problems.InfoflowProblem$1$2.computeTargetsInternal(InfoflowProblem.java:494)
        at soot.jimple.infoflow.problems.InfoflowProblem$1$NotifyingNormalFlowFunction.computeTargets(InfoflowProblem.java:285)
        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:434)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:589)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
        at heros.solver.CountLatch.awaitZero(CountLatch.java:75)
        at heros.solver.CountingThreadPoolExecutor.awaitCompletion(CountingThreadPoolExecutor.java:70)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.runExecutorAndAwaitCompletion(IFDSSolver.java:203)
        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:440)
        at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:285)
        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" java.lang.RuntimeException: There were exceptions during IFDS analysis. Exiting.
        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:440)
        at soot.jimple.infoflow.Infoflow.computeInfoflow(Infoflow.java:285)
        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.OutOfMemoryError: GC overhead limit exceeded
        at soot.util.HashChain.iterator(HashChain.java:362)
        at soot.SootClass.getFieldUnsafe(SootClass.java:236)
        at soot.AbstractSootFieldRef.resolve(AbstractSootFieldRef.java:100)
        at soot.AbstractSootFieldRef.resolve(AbstractSootFieldRef.java:81)
        at soot.jimple.internal.AbstractInstanceFieldRef.getField(AbstractInstanceFieldRef.java:93)
        at soot.jimple.infoflow.data.AccessPath.<init>(AccessPath.java:124)
        at soot.jimple.infoflow.data.AccessPath.<init>(AccessPath.java:87)
        at soot.jimple.infoflow.data.AccessPath.<init>(AccessPath.java:78)
        at soot.jimple.infoflow.problems.InfoflowProblem$1$2.createNewTaintOnAssignment(InfoflowProblem.java:600)
        at soot.jimple.infoflow.problems.InfoflowProblem$1$2.computeTargetsInternal(InfoflowProblem.java:494)
        at soot.jimple.infoflow.problems.InfoflowProblem$1$NotifyingNormalFlowFunction.computeTargets(InfoflowProblem.java:285)
        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:434)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$100(IFDSSolver.java:60)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:589)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

real    51m26.166s
user    192m38.264s
sys     0m33.571s

time java -cp FlowDroid.jar soot.jimple.infoflow.android.TestApps.Test ~/pop_candy.apk ~/android-sdk-linux/platforms
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.ArrayList.iterator(ArrayList.java:814)
        at java.util.Collections$UnmodifiableCollection$1.<init>(Collections.java:1064)
        at java.util.Collections$UnmodifiableCollection.iterator(Collections.java:1063)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:277)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
        at heros.solver.CountLatch.awaitZero(CountLatch.java:75)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Arrays.copyOf(Arrays.java:2367)
        at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
        at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
        at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
        at java.lang.StringBuffer.append(StringBuffer.java:232)
        at soot.SootMethod.getSubSignatureImpl(SootMethod.java:603)
        at soot.SootMethod.getSubSignature(SootMethod.java:573)
        at soot.jimple.infoflow.android.AndroidSourceSinkManager.isSink(Unknown Source)
        at soot.jimple.infoflow.problems.InfoflowProblem$1.getCallToReturnFlowFunction(InfoflowProblem.java:1219)
        at soot.jimple.infoflow.problems.InfoflowProblem$1.getCallToReturnFlowFunction(InfoflowProblem.java:256)
        at heros.FlowFunctionCache$4.load(FlowFunctionCache.java:57)
        at heros.FlowFunctionCache$4.load(FlowFunctionCache.java:55)
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
        ... 11 more
com.google.common.util.concurrent.ExecutionError: java.lang.OutOfMemoryError: GC overhead limit exceeded
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2261)
        at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
        at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
        at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4880)
        at heros.FlowFunctionCache.getCallToReturnFlowFunction(FlowFunctionCache.java:75)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.processCall(IFDSSolver.java:299)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver.access$000(IFDSSolver.java:60)
        at soot.jimple.infoflow.solver.fastSolver.IFDSSolver$PathEdgeProcessingTask.run(IFDSSolver.java:581)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Arrays.copyOf(Arrays.java:2367)
        at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
        at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
        at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
        at java.lang.StringBuffer.append(StringBuffer.java:232)
        at soot.SootMethod.getSubSignatureImpl(SootMethod.java:603)
        at soot.SootMethod.getSubSignature(SootMethod.java:573)
        at soot.jimple.infoflow.android.AndroidSourceSinkManager.isSink(Unknown Source)
        at soot.jimple.infoflow.problems.InfoflowProblem$1.getCallToReturnFlowFunction(InfoflowProblem.java:1219)
        at soot.jimple.infoflow.problems.InfoflowProblem$1.getCallToReturnFlowFunction(InfoflowProblem.java:256)
        at heros.FlowFunctionCache$4.load(FlowFunctionCache.java:57)
        at heros.FlowFunctionCache$4.load(FlowFunctionCache.java:55)
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)
        ... 11 more

real    14m44.782s
user    54m36.009s
sys     0m10.492s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值