Android版本和微信版本在7.0以上,不再信任用户安装的证书,只信任软件内置的证书,这样无法抓包。
开启代理(例如:fiddler)进行抓包,发现小程序页面加载不全,且无法抓到https的包。此方法行不通了。
使用夜神模拟器配合 burpsuite 进行抓包。夜神模拟器不一定要老版本,有人会觉得新版本抓取 HTTPS 包会比较麻烦,所以一直不敢换版本。其实模拟器最大的好处就是随意开启root权限,这样就算是Android7.0以上,我们只需使用root权限把证书安到系统内置列表就行。
然后就是常规的看IP、设端口、手机WiFi设置代理(代理地址和代理端口与bp需要一致)、浏览器访问IP:端口、下载证书、安装证书。
这方法也不行了。
既然移动端这么难搞,那么转移到PC端。PC端微信小程序直到2019年8月更新至2.7.0版本才有。相较于移动端,那抓包要容易的多。
PC端打开微信小程序,开启Fiddler代理,直接可以抓包。
(此方法也已经不行了)
接上一小节,桌面端微信小程序升级,使用了不同的架构,Fiddler无法获取到参数信息。观察发现,小程序进程的名字从【WeChatApp.exe】
变成了【WeChatAppEx.exe】,如图:
有个临时解决方法。结束小程序进程,退出电脑微信,然后找到这个目录:
删除WMPFRuntime下所有的文件夹,然后重启PC微信,重新开始抓包即可。
PS:根据小程序功能的不同,该目录会有所区别。如果是类似于Web框架的,可以找到这个目录:
删除目录下的所有内容,在重新启动微信即可抓包。
(以上方法极不稳定)
利用流量转发可以彻底解决这一的问题。 可以用sockscap或者Proxifier,或者其它的软件都行。俺用的是Proxifier。
Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。即:让代理不支持代理的程序变的可行(言语理解)。
Proxifier支持各种操作系统和各代理协议,它的运行模式可以指定端口,指定程序的特点。
我们指定的程序就是上面提到的【WeChatAppEx.exe】。
可以设置代理服务器。
代理规则需要设置优先级,一般俺放在最前面。
然后bp就可以像代理浏览器一样正常工作了。这里需要开全局代理。像Chrome浏览器其本身并没有用于设置代理服务器的任何特定配置选项,也就只能开全局代理。这也是一部分人喜欢用Firefox浏览器的原因。
更多内容关注笔者公众号:极客随想。