2022/4/2 更新FlowDroid环境配置-windows

环境变量

电脑上有adnroid studio自带的sdk platforms工具
作者写的很明白
EXPORT ANDROID_JARS=Android JAR folder #windows路径\AppData\Local\Android\Sdk\platforms\android-32\android.jar
EXPORT DROIDBENCH=DroidBench folder #不想编译测试官方样本的话不用配置
安装 maven,配置好本地仓库和settings.xml,我安的3.8.5,就改了本地仓库位置,源没动,公司网不错。

命令行工具

最简单,直接就能运行
java -jar soot-infoflow-cmd/target/soot-infoflow-cmd-jar-with-dependencies.jar \ -a <APK File> \ -p <Android JAR folder platforms路径\AppData\Local\Android\Sdk\platforms\> \ -s <SourcesSinks file>

例如:
java -jar soot-infoflow-cmd-2.9.0-jar-with-dependencies.jar \ -a enriched1.apk \ -p C:\Users\silver\AppData\Local\Android\Sdk\platforms \ -s SourcesAndSinks.txt

使用maven构建

ida创建好maven工程后,在pom.xml中添加下面的仓库就行。

    <dependency>
        <groupId>de.fraunhofer.sit.sse.flowdroid</groupId>
        <artifactId>soot-infoflow</artifactId>
        <version>2.10.0</version>
    </dependency>
    <dependency>
        <groupId>de.fraunhofer.sit.sse.flowdroid</groupId>
        <artifactId>soot-infoflow-summaries</artifactId>
        <version>2.10.0</version>
    </dependency>
    <dependency>
        <groupId>de.fraunhofer.sit.sse.flowdroid</groupId>
        <artifactId>soot-infoflow-android</artifactId>
        <version>2.10.0</version>
    </dependency>
</dependencies>

提示缺少junit加上就行

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>
  <dependency>
    <groupId>de.fraunhofer.sit.sse.flowdroid</groupId>
    <artifactId>soot-infoflow</artifactId>
    <version>2.10.0</version>
  </dependency>
  <dependency>
    <groupId>de.fraunhofer.sit.sse.flowdroid</groupId>
    <artifactId>soot-infoflow-summaries</artifactId>
    <version>2.10.0</version>
  </dependency>
  <dependency>
    <groupId>de.fraunhofer.sit.sse.flowdroid</groupId>
    <artifactId>soot-infoflow-android</artifactId>
    <version>2.10.0</version>
  </dependency>

重新刷新下载,没有问题,外部库加载上了

编写一个检测apk基本信息的程序

点击查看代码
public class App
{


    private static String apkPath = "G:\\TEST\\11.apk";

    public static void main(String[] args) throws IOException, XmlPullParserException {
        ProcessManifest processManifest = new ProcessManifest(apkPath);
        //获取包名
        System.out.println("packagename:" + processManifest.getManifest().getAttribute("package"));
        Iterator<BinaryManifestActivity> itact = processManifest.getActivities().iterator();
        while (itact.hasNext()) {
            String name = itact.next().getNameString();
            System.out.println("activity: " + name);
        }
        Iterator<BinaryManifestService> itser = processManifest.getServices().iterator();
        while (itser.hasNext()) {
            String name = itser.next().getNameString();
            System.out.println("services: " + name);
        }
        Iterator<BinaryManifestBroadcastReceiver> itrec = processManifest.getBroadcastReceivers().iterator();
        while (itrec.hasNext()) {
            String name = itrec.next().getNameString();
            System.out.println("receives: " + name);
        }
        Iterator<BinaryManifestContentProvider> itpro = processManifest.getContentProviders().iterator();
        while (itpro.hasNext()) {
            String name = itpro.next().getNameString();
            System.out.println("providers: " + name);
        }
        Iterator<String> itper = processManifest.getPermissions().iterator();
        while (itper.hasNext()) {
            String name = itper.next();
            System.out.println("Permissions: " + name);
        }
        Iterator<AXmlNode> itInt = processManifest.getLaunchableActivityNodes().iterator();
        while (itInt.hasNext()) {
            String name = itInt.next().toString();
            System.out.println("Intent" + name);
        }
        System.out.println(processManifest.getMinSdkVersion());
        System.out.println(processManifest.getTargetSdkVersion());


    }
}

部分运行结果

posted @   狐狸大剑眼镜  阅读(174)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示