python+camille+frida,实现对apk隐私信息的堆栈分析

近期,听闻公安又对公司的一款游戏包,说存在隐私整改问题了,还没有拿到报告,领导先让我分析一下我们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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunbofiy23

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值