2021-06-18 记录一次flutter开发的APK包 HTTPS数据解析

之前一直是解析自己的包,并且是基于java 和 kotlin开发,RN之类的跨端技术虽有涉猎,但是不够深入,这次正好要爬取一个APP的部分数据,出现了诸多之前没遇到的问题,这里进行记录。

坑,最开始使用Genymotion获取,发现APP包无法启动,后续通过logcat发现是flutter so库问题,然后就通过雷电模拟器进行解密

DAY 1

Fiddler + Android 网络手动设置代理。

安装证书以后,能够获取到http和https数据,但是没有发现我想要得到的数据,清空请求列表同时APP请求数据,发现能够正常获取数据,但是fiddler没有获取到数据。

查询APP包内容,发现是flutter技术架构,因为flutter默认不会使用系统代理,所以即使在系统层做了代理,但是APP本身的网络请求是不会使用系统代理配置。
随意百度个参考

DAY 2

  • drony 转发
  • wireshark 拦截网卡,获取数据
drony

drony 是 APP网络转发工具,支持 http https socket等转发,网上配置教程太多,随便找一个

配置以后发现能够拦截到数据包,但是全部失败(当时还不知道可以查看fiddler的log日志),并且APP上提示应用请求失败,估计是验证不通过。

wireshark 拦截数据包

我承认这里我2了,https数据解析成本有点高

通过看fiddler拦截的数据,只能够知道域名,但是不知道具体请求的数据,获取ip以后,在网卡筛选出增加 ip.dst=搜索到的ip, 可以看到拦截数据和应用数据,但是加密过,解析成本过高(没解析过)

DAY 3

一直在折腾Drony是不是配置问题,浪费了很多时间,尝试了实体机 和 虚拟机都一个结果,最后猜测应该就是证书问题。百度之后,Android 7.1 以后部分 APP 不信任 用户级别证书,需要升级到系统级别凭证才行。

so,fiddler 证书 升级为系统证书,随意搜教程地址
可能会出现:-(

  • openssl 没安装问题自行安装
  • 提取hash 报错问题删除head -1

把自己生成的证书文件 和 系统证书目录里面的证书文件内容格式比较一下,是否一致。

DAY4

安装证书以后发现数据请求还是错误,查看自己的证书文件格式和 系统证书目录下的文件的整数格式不对,自己重新生成一遍

安装以后,请求数据,发现依然失败,卡壳了,然后发现fiddler 可以查询log日志,发现提示身份验证失败

猜测应该是证书没生效,重启虚拟机以后,发现https可以请求成功并且解密,但是有部分依然失败,百度以后猜测是 协议的问题,默认fiddler 协议只有 tls1.0,在 工具-> 选项 -> https -> 协议 增加tls1.1 tls1.2 以后,重启fiddler,发现全部无法解析,提示身份验证失败。

重启APP以后访问发现全部正常而且可以全部解析,但是过一段时间以后,不重启APP的情况下请求发现全部会验证失败,这里的疑问暂时保留,后续有精力研究研究

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值