调试微信内置浏览器

微信内置的浏览器在不同的平台下的实现方式不同,但都接入了微信自身的OAuth机制用于鉴权。有些时候但微信本身的调试接口藏得很深,有些实现也没有提供一个调试窗口。此处我们以获取调试中的cookie为例来探讨不同设备的异同。

X5内核

在国内下载的微信使用的是腾讯的X5内核。X5内核自带调试功能,可以由以下方法开启:

在微信中访问 http://debugx5.qq.com ,在X5调试页面开启TBS内核Inspector调试功能。

如果提示您“非x5内核”,此时您的微信应该使用的是系统原生框架。您可以参考下一部分的“系统原生框架”进行调试,但也可以在微信中访问debugmm.qq.com/?forcex5=true切换为X5内核。(访问debugmm.qq.com/?forcex5=false就可以切换回WebView,但可能并不完全。)

系统原生框架

iOS和Google Play版本的微信在浏览器实现上调用的是使用系统提供的框架。

因为Android自带的WebView调试需要在打包时传递测试参数,而iOS则需要测试证书才能够调试,对于我们此处的例子是不适用的。

最简单的方法当然是安证书抓包。但是因为一些原因不方便抓包的时候,我试验成功的办法,是:

  1. 生成自己的根证书并对需要调试的网页进行自签名。
  2. 在手机上安装此根证书。
  3. 在电脑上搭建对应网页的服务器,目的是接受手机端传入的cookie,再配置自签名的证书。
  4. 在电脑上搭建DNS服务器,将欲调试的网页的DNS结果转发到上述网页服务器上。
  5. 配置手机使用电脑上的DNS。
  6. 此时就可以接收到cookie了。

后来观察到,当我试图在使用x5内核的设备上修改DNS服务器的时候,chrome已经可以工作,但微信并未生效,一直超时。后来发现x5内核使用微信自己实现的DoH,整个过程中只会查询微信自己的系列DoH服务器域名。而系统原生框架则不支持相关操作。

Ads by Google

Read our privacy policy on how these personalized advertisements are delivered to you.

For your reading experience, we provide full-text RSS feeds. Although math formulas cannot be displayed well, the interface can be adjusted as you like and there are no ads.