Flutter框架开发的安卓App的抓包以及Frida安装和hook使用教程
资料
记录Flutter框架开发的安卓App的抓包以及Frida安装和hook使用教程
Postern + Charles + Burpsuite 进行对 APP 进行抓包
Postern实现安卓设备的全局代理教程
为什么Flutter不能抓包
1.它不走系统代理
2.它不支持设置代理
3.它不信任系统证书
然后它证书校验写死在so文件里,所以导致JustTrustMe,SSLUnpinning等模块完全失效,目前面临的问题:需要证书校验和不走代理,
解决的步骤
- 针对证书校验问题,就是用frida去hook libflutter.so中的函数
- 使用IDA静态分析,找到‘ssl_client’hook的点
- 针对不走代理我们可以使用基于VPN模式的Postern+charles 转发抓包
- 运行frida
具体的步骤
将apk解压(改成zip后缀),找到libfluter.so
此时要注意你用的手机是否是64位
打开64位的IDA pro
通过字符串找到ssl_client
双击进去
找一下这个堆栈,点击红圈函数,按x追踪(IDA有时候特别慢,需要多等一会儿)
此时就能找到这个函数的地址了
frida脚本
这个时候,我们使用别人写好的脚本https://github.com/G123N1NJ4/c2hack/blob/master/Mobile/flutter-ssl-bypass.md
把这段代码复制下来,把代码中的地址修改为刚才获得的地址0X5dc3cc,将代码保存为ssl.js。
配置frida
然后打开app,frida –UF –l ssl.js (-UF 就是当前打开的app)
启动frida-server
sargo:/# cd /data/local/tmp
sargo:/# ./frida-server-16.1.3-android-arm64
端口转发:
adb forward tcp:27043 tcp:27043
使用frida
frida -UF -l flutter_ssl_bypass.js
配置postern
然后打开postern工具转发一下,在charles就能抓到包了。
1.配置charles
勾选SOCKS Proxy
添加代理服务器
严格按照下面的配置来执行
点击保存
配置规则
添加规则
按照下图进行操作并点击保存
打开/关闭 Postern
这样足够了