工具
FlowDroid Android 静态污点分析工具
面向 Android 应用和 Java 程序的静态数据流(污点)分析工具,基于 Soot 构建,可作为命令行工具使用,也可作为 Maven 库集成。输入 APK、Android SDK 的 platforms 目录以及源点和汇点定义后,它会对组件生命周期和回调建模以构建调用图,并报告从敏感源点流向汇点的数据流;随附的 SourcesAndSinks.txt 可作为分析隐私泄露的起点,StubDroid 摘要则用于对库方法建模。选项涵盖依据用户提供的 ICC 模型文件分析组件间数据流、路径重建、隐式流、反射,以及用精度和召回率换取速度的超时设置;其分析方法发表于 PLDI 2014 论文《FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps》。
- 目标
- 应用
- 类别
- Android 工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 审阅时最新版本为 v2.15.1,于 2026-02-23 打标签,并以 de.fraunhofer.sit.sse.flowdroid 发布到 Maven Central,其中包括供命令行使用的 soot-infoflow-cmd-2.15.1-jar-with-dependencies.jar。自 v2.14 起 GitHub 发行版不再附带文件,最后一个附带 JAR 的是 2024-04-02 发布的 v2.13;README 中的 Maven 示例仍写着 2.12.0。所审阅的 2026-09-28 develop 提交声明版本为 2.16.0-SNAPSHOT。
- 命令行需要 APK、Android SDK 的 platforms 目录和源点汇点定义文件,待分析的应用需由用户自备。README 称 FlowDroid 支持 Windows、macOS 和 Linux,并提醒分析大型应用可能耗时很长;可通过选项跳过静态字段流或异常流,数据流、回调收集和结果收集三个阶段的超时可叠加设置,超时后返回部分结果。
- 构建需要 Maven、JDK 和最新的 Soot 快照版本;README 要求 JDK 11 及以上,但所审阅的 pom.xml 以 Java 17 为编译目标,并依赖 Soot 4.8.0-SNAPSHOT。README 称完整测试套件约需 30 分钟,另外还需要 JDK 8 及其 rt.jar、ANDROID_JARS 环境变量,以及 DroidBench 子模块(一个单独的基准测试应用仓库)。
- 仓库提交了 25 个 APK 作为测试输入:soot-infoflow-android/testAPKs 和 soot-infoflow-integration/testAPKs 下以所测场景命名的测试应用(如 SourceToSink1.apk、ThreadRunnable.apk),故意留有漏洞的 InsecureBank.apk,以及一个以哈希值命名、清单显示属于其他开发者应用(com.RZStudio.cube)的 APK。soot-infoflow-android/lib 中包含 JUnit、Hamcrest 和 protobuf-java 的 JAR 文件。
- 采用 LGPL-2.1 许可;README 说明修改后的版本必须同样以 LGPL 公开。分析结果取决于配置以及所选的源点和汇点。本条目未分析任何应用,所审来源也未确立与 REA 的关联。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.MD GitHub · secure-software-engineering/FlowDroid · 修订 9bf1034
- pom.xml GitHub · secure-software-engineering/FlowDroid · 修订 9bf1034
- .gitmodules GitHub · secure-software-engineering/FlowDroid · 修订 9bf1034
- soot-infoflow-cmd/src/soot/jimple/infoflow/cmd/MainClass.java GitHub · secure-software-engineering/FlowDroid · 修订 9bf1034
- soot-infoflow-android/SourcesAndSinks.txt GitHub · secure-software-engineering/FlowDroid · 修订 9bf1034
- soot-infoflow-android/testAPKs GitHub · secure-software-engineering/FlowDroid · 修订 9bf1034
- soot-infoflow-integration/testAPKs GitHub · secure-software-engineering/FlowDroid · 修订 9bf1034
- LICENSE GitHub · secure-software-engineering/FlowDroid · 修订 9bf1034
- https://github.com/secure-software-engineering/FlowDroid/releases/tag/v2.15.1
- https://github.com/secure-software-engineering/FlowDroid/releases/tag/v2.13
- https://repo1.maven.org/maven2/de/fraunhofer/sit/sse/flowdroid/soot-infoflow-cmd/2.15.1/
- https://doi.org/10.1145/2594291.2594299