FlowDroid安装与调试

在网上找了好多资料,安装并运行FlowDroid,碰到了各种问题,网上也提供了多种解决方案,但是没有没有找到完全可以解决我碰到的问题的,也有一些提供的解决方案在我的安装过程中不成功,然后自己摸索,最后成功运行。下面列出我的安装步骤以及碰到的问题和我使用的解决方案。

参考了http://www.cnblogs.com/zlz099/p/6972805.html

1、首先

flowdroid官方文档给出了两种构建运行方式,分别是1)Obtaining the nightly builds和2)Building FlowDroid From Source。

(我尝试了第一种方式,但是报错,没有找到解决办法;尝试第二种方式,也是碰到很多问题,但是最终解决了。)

从github上下载所有的项目到本地,解压在同一个文件夹下。

github介绍:https://github.com/secure-software-engineering/soot-infoflow-android/wiki

heros:   https://github.com/Sable/heros.git
jasmin:   https://github.com/Sable/jasmin.git
soot:  https://github.com/Sable/soot.git
soot-infoflow:    https://github.com/secure-software-engineering/soot-infoflow.git
soot-infoflow-android:    https://github.com/secure-software-engineering/soot-infoflow-android.git

2、将上述项目依次导入(import)Eclipse;在项目上出现红色标签,显示有多个错误。 选择 soot-infoflow-android项目下的test目录下

的soot.jimple.infoflow.android.test.droidBench项目中的测试例子,在其中一个测试例子上点击鼠标右键,选择run As-->jUnit test;然后出现各种报错,问题和解决方案依次如下:

        a)   找不到两个环境文件, Android.jar 和  DROIDBENCH

 下载依赖文件:两个,一个是android.jar,在谷歌官方下载,做Android开发的都在AndroidSDK\platform文件夹下。

一个是droidbench,DroidBench是用于评估Android软件污点分析工具有效性的开源测试集,FlowDroid中的测试代码部分使用到了DROIDBENCH环境变量,在分析自定义软件时不需要该变量。因此,该数据集不是运行FlowDroid的必须文件。下载地址是https://github.com/secure-software-engineering/DroidBench。如果是分析自己的软件,则不需要下载droidbench(个人见解,最好下载)。

 配置环境变量:android_jars:  C:\Users\admin\AppData\Local\Android\Sdk\platforms\android-21\android.jar(这是我的目录)

 droidbench:C:\Users\admin\Desktop\Flowdroid\soot-infoflow-android-develop\test\soot\jimple\infoflow\android\test\droidBench(在自己本地的soot-infoflow-android目录下)。


    b)提示 Logger, LoggerFactory和一个另外的类没有定义,找不到该类的定义。

    发现这两个类文件分别在slf4j-api-1.7.5.jar 和 sootclasses-trunk-jar-with-dependencies.jar中,将两个jar加入到项目soot-infoflow-android下,又报错 SLF4J文件重复; 于是将两个jar文件放入系统的Jdk和JRE目录库下,该问题解决。

    c)提示找不到文件EasyTaintWrapperSource.txt。该文件可在项目soot-infoflow根目录下找到,复制到soot-infoflow-anadroid的根目录下即可。

    d)测试 AliasingTests.java文件,报错 “Exception: org.jf.dexlib2.DexFileFactory$DexFileNotFoundException: StrongUpdate1.apk does not exist”,以及找不到很多对应的apk文件。 发现是 AliasingTests.java程序中的        InfoflowResults res = analyzeAPKFile("Aliasing/StrongUpdate1.apk");报错;分析发现是很多待分析的 apk不存在。

     上https://github.com/secure-software-engineering/DroidBench 下载DroidBench-master.zip;解压后将里面的apk/目录下所有的待测试apk拷贝到  droidbench目录下,即C:\Users\pengbt\Desktop\Flowdroid\soot-infoflow-android-develop\test\soot\jimple\infoflow\android\test\droidBench下。

然后运行 可以成功得到分析的结果。报对应的apk有几个漏洞。

3、在soot中还有一个错误: Maven 报plugin execution not covered by lifecycle configuration......

参考  blog.csdn.net/xxd851116/article/details/25197373;在<plugins>标签外在加一个<pluginManagement>标签即可

<build>
    <pluginManagement>
        <plugins>
            <plugin> ... </plugin>
            <plugin> ... </plugin>
                  ....
        </plugins>
    </pluginManagement>
</build>



  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值