【导语】:APKLeaks 是一个开源的 apk 文件敏感信息扫描工具。
简介
APKLeaks是一个apk文件敏感信息扫描工具,它会扫描apk来获取URI、端点和secret信息。
项目地址是:
https://github.com/dwisiswant0/apkleaks
安装
- PyPi安装:
$ pip3 install apkleaks
- 源码安装:
$ git clone https://github.com/dwisiswant0/apkleaks
$ cd apkleaks/
$ pip3 install -r requirements.txt
- docker安装:
$ docker pull dwisiswant0/apkleaks:latest
值得一提的是,APKLeaks依赖于jadx,如果环境中没有,会提示安装。jadx是一个逆向工程工具,用来反编译APK文件,详细介绍可以参考开源前哨的这篇文章:《2.4 万 Star 的反编译利器:Jadx》。
简单使用
使用非常简单,执行以下命令即可:
$ apkleaks -f ~/path/to/file.apk
# 或源码运行
$ python3 apkleaks.py -f ~/path/to/file.apk
# 或docker运行
$ docker run -it --rm -v /tmp:/tmp dwisiswant0/apkleaks:latest -f /tmp/file.apk
- 命令选项
-f, --file 指定要扫描的APK文件,如:apkleaks -f file.apk
-o, --output 指定结果输出文件,如:apkleaks -f file.apk -o results.txt
-p, --pattern 自定义模式JSON的路径,如apkleaks -f file.apk -p custom-rules.json
-a, --args 反编译参数,如:apkleaks -f file.apk --args="--deobf --log-level DEBUG"
--json 以json格式保存,如:apkleaks -f file.apk -o results.json --json
- 输出 如果没有使用-o参数,会自动生成结果文件,默认情况下,生成的结果为文本格式,如果要输出json格式,使用--json参数。
- 模式 可以使用-p添加自定义JSON格式的模式,JSON文件描述了敏感信息的搜索规则,如果没有设置,会使用APKLeaks默认的模式。模式文件示例:
// custom-rules.json
{
"Amazon AWS Access Key ID": "AKIA[0-9A-Z]{16}",
...
}
命令示例:
$ apkleaks -f /path/to/file.apk -p rules.json -o ~/Documents/apkleaks-results.txt
- 反编译参数 用户拥有反编译工具的控制权,可以通过反编译参数进行设置。例如,如果要使用多线程进行反编译,可以使用--args="--threads-count 5"参数。
$ apkleaks -f /path/to/file.apk -a "--deobf --log-level DEBUG"