最近开始学习FlowDroid的使用,从github(https://github.com/secure-software-engineering/soot-infoflow-android/wiki)上我们可以看出FlowDroid有两种使用方法,一个是简单的使用,另一个是通过源码自己来构建,由于我的系统是Ubuntu难免遇到一些问题,我也是刚刚使用这个系统不久,所以在这里介绍一下。
1.将所需要的东西git clone下来,如果不会git推荐去看看廖雪峰的git博客,之后在eclipse中导入,然后配置环境变量,在这里需要配置两个环境变量,一个是ANDROID_JARS,这个东西存在于sdk目录下的platforms中的任意一个文件夹下,如我的路径就是:/home/wws/androidsdk/Android/sdk/platforms/android-20/android.jar,还有一个就是DROIDBENCH的路径,这个东西我发现在所下载的工程文件soot-infoflow-android.test.soot.jmple.infoflow.android.test下,右击属性copy路径就可以获得路径,我的路径是/home/wws/git/newgitskills/soot-infoflow-android/test/soot/jimple/infoflow/android/test/droidBench。之后就说一下怎么在ubuntu下简单的配置环境变量,Ubuntu的环境变量存放在/etc/profile中,因此我们要对其进行编辑需要使用命令,sudo gedit /etc/profile 之后在最后两行加上下图所示的最后两行:
最后还需要一个配置文件,这里我参考了王东伟先生的一个博客,最后我会给出此博客地址,王东伟先生说:“至于EasyTaintWrapperSource.txt
文件,发现soot-infoflow项目中存在这个文件,硬拷贝到soot-infoflow-android工程中的,不知道有没有更好的方法”。至此,构建完毕。
2.Obtaining the nightly builds,这种方式我们可以从介绍中看出一个是下载那六个文件,放在同一个文件夹下,之后需要一些配置文件,关于这个配置文件说的不是很详细,最后我是这样子处理的,在第一次下载的源码级构建方式中的soot-infoflow-android中copy文件名为SourcesAndSinks.txt的文件和soot-infoflow中EasyTaintWrapperSource.txt
文件,在github中给出了一个命令行,其中有两个参数需要改,一个是所要测试apk的路径,一个是sdk中platforms的路径,由于其默认的为android-9,而我们现在应该不怎么使用了所以sdk里很可能没有所以最后路径具体到android.jar(同上1的环境变量,不做赘述),最后一切准备就绪我将命令输入到终端,发现怎么也成功不了,显示command can not found ,最终我的队友找到了原因,github上的命令针对的是windows用户,路径分隔符使用":",而ubuntu中的路径分隔使用的应该是":",至此,可以运行。
由于我和我的队友也是初学者,所以此博文难免有疏漏指出,敬请批评指正,后续有任何问题也希望和大家一起交流。
参考博文:https://idear1203.github.io/run-flowdroid/
联系方式:[email protected]