近期,听闻公安又对公司的一款游戏包,说存在隐私整改问题了,还没有拿到报告,领导先让我分析一下我们apk包有那些涉及隐私的问题,因为联运游戏包涉及的个体比较多,有游戏开发队,还有渠道SDK,和我们自己的SDK,所以定位起来就比较麻烦,也是在网上搜了一些资料,发现VIVO和小米的云测平台是提供免费的隐私检测服务的,也是用了一下,小米的,包体上传有些慢,而且测试机型加载不出来,无法选择,就放弃了。
贴:
然后去看了vivo了,上传包体,等待一段时间,就可以拿到报告了。
贴:vivo云测平台
报告内容有提到,风险项,但是没有堆栈信息,无法定位到代码,属于那一端的问题,于是,又开始找寻能输出堆栈的方案,在参考了罗大佬的Android-APP隐私合规检测_app隐私合规检测工具_罗圣修的博客-CSDN博客
后,便开始自己搭建环境,运行脚本。把整个步骤记录一下:
1:查询手机CPU-架构
我本地是有adb环境的,因此先查询了手机的cpu架构,方便下载对应版本的frida。
win+R 输入cmd,进入命令行,输入:
adb shell
getprop ro.product.cpu.abi
2:下载frida-server(移动端)
先简单说明一下这是个什么东西:根据官方描述,意思大概是一个注入框架,可以追踪API的代码,支持Andorid,IOS,Windos等,是用Python和Js实现的。接着我又百度百科了一些资料,参考大佬的理解,其实就和Xpose是一个东西,逆向框架,只不过Xpose是Java实现的,只能hook安卓,当然Xpose我还没用过,就不阐述了。~~~
根据第一步我们查询的cpu架构,我们下载这个……OK
附下载地址: Releases · frida/frida · GitHub
3:安装camille
一样,先简单说说camille是个什么东西……在一顿操作以后,也是大概知道……
oh no ^_^ 它不是一个歌手,是一位叫zhengjim大佬写的隐私合规检测辅助工具,昂,对!
它是python实现的,同样我们先把它拉到本地。
git clone https://github.com/zhengjim/camille.git
cd camille
pip install -r requirements.txt
python camille.py -h
然后安装:
注意:这里确保本地安装好了python3,pip工具。
附下载地址:GitHub - zhengjim/camille: 基于Frida的Android App隐私合规检测辅助工具
4:具体实现
环境到这里,就已经万事俱备了,现在我们看看准备的工具有那些吧,
于是,我怀着激动的心情,现在开始跑脚本!!!
4.1:frida 推送到手机
#推送
adb push frida-server-16.0.17-android-arm64 /data/local/tmp/frida-server-16.0.17-android-arm64
#查看
adb shell
cd data/local/tmp
ls
#运行
./frida-server-16.0.17-android-arm64
哎呀,照着大佬的步骤,怎么说没有权限呀,原来查看frida的文档,就有说明,支持root的手机,根据adb shell打印的信息,原来我们的测试机没有root。
如何区分手机root,我也标准了一下,用adb shell, 如果是$,是没root权限的,如果是#,则说明设备已root。
因为公司的测试机,不方便root,于是我使用了雷电模拟器,来再次运行frida。运行结果如下:
注:因模拟器cpu架构是x86,于是我重新去官方下载了一个x86的frida.这一步完成后,不要关闭cmd,重新打开一个窗口,运行camile.
4.2:运行camile脚本
python camille.py 包名 -f demo.xls
又报错了:“frida-server没有运行/frida-server与frida版本不一致,请排查”,于是,我打开camille.py,开始排查,除了print(报错信息),也没有和版本相关的代码呀……头疼,好在,我看项目目录比较仔细,原来项目里附赠了大佬的联系方式,我加上大佬VX,开始沟通……
原来是我电脑没有frida-server这个服务,
pip install frida
注意:PC端的frida和移动端的版本要一致。
再次运行,结果图如下
不会吧,到这里就结束了吗?不对啊,我还没有操作隐私协议啊…… 于是我又在交流群里,向大佬们请教……
原来是脚本获取的窗口,白屏,需要加延时操作,于是更改源码camille/utils/simulate_click.py
好了,现在在ANDROID PHONE 窗口有了画面,不在白屏。
同意隐私协议,开始打印堆栈,直到流程结束,一定要记得按ctrl+c结束,这样才会生成demo.xls文件哦。
然后打开demo.xls,又是一片新的天空~~
5:总结
经过整套apk包的隐私信息堆栈分析流程,我只能说我跪了,谢谢大佬们的解惑,和前辈们的资料。666