背景
APP隐私合规十分重要,各监管部门不断开展APP专项治理工作及核查通报,不合规的APP通知整改或直接下架。camille可以hook住Android敏感接口,检测是否第三方SDK调用。根据隐私合规的场景,辅助检查是否符合隐私合规标准。
环境搭建
1、安装Python3
camille 是基于Python3环境的,因此我们需要先配置好python3的环境,下载地址。
2、MUMU模拟器安装
安装MUMU模拟器,并开启ROOT权限,下载地址。
在模拟器上安装你要检查的APK包。
3、PC安装 frida
pip3 install frida-tools
pip3 install frida
frida --version
4、PC安装Camille
git clone https://github.com/zhengjim/camille.git
cd camille
pip install -r requirements.txt
python camille.py -h
5、模拟器上安装运行 frida-server
下载frida-server,链接里资源很多,注意下载frida-server开头的文件
安卓对应系统架构可以通过以下命令查看:
# 连接MuMu模拟器
# 555是MuMu模拟器的默认端口
adb connect 127.0.0.1:7555
# 连接成功后进入模拟器的shell
adb shell
# 查询系统架构的命令
getprop ro.product.cpu.abi
下载完 frida-server-16.1.3-android-x86_64.xz后右键将其解压将得到一个无后缀的文件,我们将其重命名为frida-server,然后打开一个管理员权限的命令行窗口,执行如下命令推送frida-server到手机
# 链接模拟器
adb connect 127.0.0.1:7555
# 推送frida-server到手机
adb push C:/你的路径/frida-server /data/local/frida-server
# 进入Shell命令行
adb shell
# 进入frida-server目录、修改文件可执行、执行frida-server
cd /data/local/frida-server
chmod 777 frida-server
./frida-server
此时 frida-server 已经启动,不要将此窗口关闭。
6、运行Camille
请确认,合规检测的APK包已安装到模拟器上。
# 进入camille安装目录
cd camille
# 启动开始检测、跟踪
# com.xxx.xxx为包名
python camille.py com.xxx.xxx
如果出现以下信息,恭喜你,搭建完成了。
高级用法
1、输出堆栈信息文件
python camille.py com.xxx.xxx -ns -f test.xls
-ns:不显示日志,默认显示。
-f:保存app行为轨迹(堆栈信息)到execl里,默认不保存。
2、指定设备
python camille.py com.xxx.xxx -s 127.0.0.1:5555
-s:指定连接设备,可通过 adb devices 获取设备 id
3、延迟hook
python camille.py com.xxx.xxx -t 3
-t: hook应用自己的函数或含壳时,建议使用setTimeout并给出适当的延时(1-5s,需要根据不同app进行调整)。以免hook失败。默认不延迟。
4、使用attach
python camille.py -ia 11222(11222为进程ID)
-ia:使用attach hook
假如hook不上,可以使用-ia,指定包名或运行进程ID。 有些包有同名进程,frida会hook失败,需要使用进程ID。
找进程ID,进入安卓运行ps -A | grep com.xxx.xxx
5、选择hook模块
-u: 扫描指定模块。与命令-nu互斥。多个模块用','隔开。例如:phone,permission
模块列表:
| 模块名 | 备注 |
|---|---|
| permission | 申请权限 |
| phone | 电话、基站 |
| system | 系统信息(android/标识/content敏感信息) |
| app | 其他app信息 |
| location | 位置信息 |
| network | getNetwork |
| camera | 照相机 |
| bluetooth | 蓝牙 |
| file | 文件 |
| media | 麦克风 |
| custom | 用户自定义接口 |
-nu:跳过扫描指定模块。与命令-u互斥。多个模块用','隔开。例如:phone,permission 模块列表同上
参考资料
github.com/frida/frida…
github.com/zhengjim/ca…
zhuanlan.zhihu.com/p/621917291
juejin.cn/post/720809…