Skip to main content

使用 FlowDroid APK 分析器的 Python 包装器。

项目描述

PyFlowDroid

FlowDroid Apk 分析器的 Python 包装器。该项目的构建有两个目标:

  1. 自动创建开箱即用的 FlowDroid 环境
  2. 允许从 Python 代码中使用 FlowDroid

1.安装

1.1 先决条件

确保你有:

  1. 环境路径中的java工作版本。
  2. 环境路径中的python工作版本。
  3. 环境路径中的git工作版本。

1.2 安装pyFlowDroid

您可以使用pip从 pypi 获取它:

$ pip install pyflowdroid

然后,您需要运行额外的命令来使 pyflowdroid 下载并安装 FlowDroid 以及使用它所需的资源:

$ python -m pyflowdroid install

2.使用pyflowdroid作为Python库

您可以将此脚本用作使用 pyflowdroid 下载和分析 apk 文件的指南:

import pyflowdroid

# Path to a folder where the apks are stored
apkfolder = "./apks"

# If you need test apks, you can dowload the desired amount
# from a given provider into a destination folder
pyflowdroid.fetch(10, 'cubapk.com', apkfolder)

# Analyze all the apks in a folder
apk_count, leaks_count, leaky_apps = pyflowdroid.analyze(apkfolder)

# Analyze a single apk
flowdroid_logs = pyflowdroid.analyze_apk('./apks/test.apk')

3.使用pyflowdroid作为命令行工具

与直接使用 FlowDroid 相比,使用 pyflowdroid 作为命令行工具的主要优点是自动收集执行流分析所需的资源。pyflowdroid 捆绑了所有必需的资源,以允许快速分析 apk 文件。

要使用默认的 pyflowdroid 设置分析 .apk 文件,只需运行:

$ python -m pyflowdroid analyze path/to/file.apk

同样,您可以对文件夹内的所有 apk 执行流分析:

$ python -m pyflowdroid analyze path/to/folder/

这应该为每个分析的 apk 存储原始 FlowDroid 日志,然后显示如下一般报告:

################################################################################
#                              PYFLOWDROID REPORT                              #
################################################################################
Analized: 5
Leaks found: 2

Leaky apps:
 - 'path/to/folder/app1.apk'
 - 'path/to/folder/app3.apk'

如果你想获取一些测试 apk,pyflowdroid 包含一个下载功能,可以从给定的提供者那里获取 apk。当前可用的提供商是:

要从提供程序获取 apk,只需运行:

$ python -m pyflowdroid download amount path/to/store/apks/ provider_name

例如,要从 cubapk.com 下载 10 个 apk 文件,请运行:

$ python -m pyflowdroid download 10 ./myapks/ cubapk.com

4. 为 pyflowdroid 做贡献

如果您想向 pyflowdroid 添加任何功能,您需要获得一个开发环境。

4.1 获取项目源代码

您可以通过执行以下命令克隆 github 存储库:

$ git clone https://github.com/gvieralopez/pyFlowDroid
$ cd pyFlowDroid

4.2 安装pyFlowDroid依赖

您可以 通过执行以下命令将它们与诗歌一起安装:

$ poetry shell
$ poetry install
$ poetry build

4.3 下载 FlowDroid 及其依赖

此步骤将下载并安装 FlowDroid。完成此操作后,您可以使用带或不带 pyFlowDroid 包装器的 FlowDroid。只需运行:

$ python -m pyflowdroid install

4.4 使您的更改出现在项目中

只需提出拉取请求。

4.5 质量保证:

运行测试:

$ pytest

类型检查:

$ mypy

代码风格:

$ flake8

4.6 待定功能

  • 通过参数提示改进 cli 界面
  • 使用所有支持的 API 函数的参数改进 cli 界面
  • 在未安装 Flowdroid 和依赖项时在运行时识别
  • 添加新的 apk 提供程序
  • 编写 pytest 单元测试
  • 编写文档

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pyflowdroid-0.2.0.tar.gz (442.1 kB 查看哈希

已上传 source

内置分布

pyflowdroid-0.2.0-py3-none-any.whl (456.5 kB 查看哈希

已上传 py3