环境配置
方式1:使用jar包运行FlowDroid
若不需要修改源码,推荐此方式
下载release版FlowDroid并解压:
https://github.com/secure-software-engineering/FlowDroid/releases
- 在
.\
中新建android\
,并放入android.jar
android.jar位于Android SDK安装目录下,例如Android Studio运行就需要android.jar,位于AndroidSDK\platforms\android-30\
(每个版本有自己的android.jar) - 在
.\soot-infoflow-cmd\
中新建target\
,并放入soot-infoflow-cmd-2.9.0-jar-with-dependencies.jar
下载地址例如:https://github.com/secure-software-engineering/FlowDroid/releases/tag/v2.9 - 在
.\DroidBench\
中放入待分析apk
指令:
java -jar soot-infoflow-cmd/target/soot-infoflow-cmd-2.9.0-jar-with-dependencies.jar -a DroidBench -p android/android.jar -s soot-infoflow-android/SourcesAndSinks.txt -o sootOutput
参考:
https://github.com/secure-software-engineering/FlowDroid#running-the-command-line-tool
Android JAR 文件夹是 Android SDK 安装文件夹中的“platforms”目录。 sources 和 sinks 的定义文件定义了什么应该被视为敏感信息的源,什么应该被视为可能向外界泄露敏感数据的汇。这些定义特定于您的用例。但是,如果您正在寻找隐私问题,您可以使用我们在“soot-infoflow-android”文件夹中的默认文件“SourcesAndSinks.txt”作为起点。
方式2:使用Maven构建Flowdroid
参考:
https://e0hyl.github.io/BLOG-OF-E0/FlowDroid/