使用 FlowDroid APK 分析器的 Python 包装器。
项目描述
PyFlowDroid
FlowDroid Apk 分析器的 Python 包装器。该项目的构建有两个目标:
- 自动创建开箱即用的 FlowDroid 环境
- 允许从 Python 代码中使用 FlowDroid
1.安装
1.1 先决条件
确保你有:
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
查看哈希)
内置分布
pyflowdroid-0.2.0-py3-none-any.whl
(456.5 kB
查看哈希)
关
pyflowdroid -0.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c6cbdf53fa985a2b5126aedf4393fa50a8e518f0686a2c18409d917e3ed358a7 |
|
MD5 | 5e70ec8ee5ca2364bb37d5cf443c7e7b |
|
布莱克2-256 | 4254c1f6afefba8ea89378b9017e27156a531d45c45a85fa048ebd82dd375b39 |
关
pyflowdroid -0.2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5385f40c0803873de6fc8463ed0635fcc3228d2f7a954ad1dea7486898ba6d79 |
|
MD5 | 74babb19055b50bad91f40a9be61e690 |
|
布莱克2-256 | 2b73b65f5f23680973627344f60fd60a27f52edee02cd7422a796251f29f5d83 |