【导语】:APKLeaks 是一个开源的 apk 文件敏感信息扫描工具。

简介

APKLeaks是一个apk文件敏感信息扫描工具,它会扫描apk来获取URI、端点和secret信息。

扫描 APK 敏感信息,让你的 APP 更“安全”-LMLPHP

项目地址是:
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"
04-11 13:01