分享网络营销推广知识,交流网络推广技术心得,分享编程实践经验

App 抓包时 HTTPS 请求解密问题

App推广 14℃ 0评论

通常我们使用七麦、禅大师等第三方工具来进行应用市场关键词排名监控,其实也可以用程序自行开发工具,更加灵活同时可以结合自动化实现更多应用。

用程序监控应用市场关键词排名相当于采集应用市场 App 的内容,但 App 不比网页,其代码、请求等对用户是不可见的,这就需要对 App 进行抓包。目前大部分 iOS 和安卓 App 网络请求使用的是都 HTTPS 协议,传输的数据是加密的,因此需要在电脑和运行 App 的手机上安装 Charles 提供的证书,这样才能在抓包时解密请求的具体内容。

实践过程中我发现 HTTPS 解密其实还有很多问题,现将问题及解决方案记录备忘如下

手机证书安装问题

根据我的实践手机证书安装这里比较复杂,容易配置不成功导致 HTTPS 无法解密,全部显示 unknow。
iOS 手机证书安装相对简单,安卓就复杂很多。主要是因为安卓 7.0 版本之后系统不信任用户手动添加的证书,因此无法实现请求的解密。解决这个问题最简单的办法就是用系统为安卓 7.0 以下版本的手机。

另外有些手机可能会出现下载证书后提升无法打开无法安装的情况,以小米手机为例,可以到「设置 – 更多设置 – 系统安全 – 从存储设备安装」安装证书。

如果没有旧手机怎么办?也有一些复杂点的方法

  • 使用 Xposed 或兼容 Xposed 的框架 + JustTrustMe 绕过证书检查
  • 将抓包工具的证书安装到系统根证书目录中,需要 root 手机

详细说明可以看这里:当你写爬虫抓不到APP请求包的时候该怎么办?【中级篇】

代理型抓包软件无效问题

抓包过程中还有一种异常情况,软件配置正常,证书安装正常,但仍然无法解密 HTTPS 请求内容。这种情况一般是 App 的开发者使用了自己开发的 http 客户端,并不一定在默认情况下会直接使用系统代理。

  • 控制DNS解析,通过修改dns的方式让客户端以为我们的代理服务器就是目标服务器
  • 在网络设备上直接做流量转发,将指定终端设备上发往80及443端口的数据直接转发到代理服务器的目标端口上
  • 使用VPN将终端设备的流量转发到代理服务器

详细说明可以看这里:部分 APP 无法代理抓包的原因及解决方法

转载请注明:云深不知处 » App 抓包时 HTTPS 请求解密问题

喜欢 (3)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址