2

Victrid's

 2 years ago
source link: https://victrid.dev/2021/diao-shi-wei-xin-nei-zhi-liu-lan-qi/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

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

2

如果提示您“非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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK