使用charls抓包微信小程序的解决方案(终极解决,各种坑不怕,亲测可用,不服来战!)

第一步:使用charles进行https抓包

https://www.jianshu.com/p/7a88617ce80b   使用charles进行https抓包

使用Charles进行HTTPS抓包(包括安装信任证书以及抓包 出现无法抓包unknown和证书无效解决方案)

因为微信小程序都是https的请求,所以必须要能解析https,要解析https,就要证书

最近很多同行使用第一步所说的配置之后,发现获取的https响应数据依然是乱码。所以,请进行第二步设置。

第二步:Android 7.0 之后抓包 unknown 和证书无效的解决方案(无需改代码)

https://blog.csdn.net/ShadowySpirits/article/details/79756274

其中那个把用户证书改成系统证书的命令太风骚了,我忍不住要记下来:

系统证书目录:/system/etc/security/cacerts/

其中的每个证书的命名规则如下:
<Certificate_Hash>.<Number>
文件名是一个Hash值,而后缀是一个数字。

文件名可以用下面的命令计算出来:

openssl x509 -subject_hash_old -in <Certificate_File>        

这个<Certificate_File> 就是你下载的证书的名字,你计算出hash值以后,就把原来证书的名字,就是这个<Certificate_File>,改成hash值点Number的格式(<Certificate_Hash>.<Number>的格式

后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的Hash值是一样的话,那么一个证书的后缀名数字可以设置成0,而另一个证书的后缀名数字可以设置成1

操作步骤:

将抓包软件的证书用上述命令计算出 Hash 值,将其改名并复制到系统证书目录

 

此时你应该可以在 设置->安全->加密与凭据->信任的凭据 的系统标签页看到你新加入的证书,将其启用即可顺利抓包

到这里了,其实还有个问题,用自己的手机去root,肯定不划算,如果手边苹果机也不好找的话,是不是就搞不成了?

那也不是,办法总比困难多。

这里可以选择使用《夜神模拟器》来代替手机,话说夜神模拟器还真的是不错,默认安装好就已经是root了的。

你可以把证书文件下载到你电脑上,然后用上面说的那个命令计算出hash值(如果是windows,没法使用那个openssl命令,可以装一个Git bash,就可以用了),

然后把证书文件拖到夜神模拟器里,此时文件会在夜神的一个非系统文件夹里,但我们是需要把它搞到系统证书文件夹里去的,夜神又没有移动文件的办法,怎么办呢?

活人不可能被尿憋死,不能移我就新建一个嘛,反正只要这个证书串还是那个串就好了嘛。

所以,打开拖到夜神模拟器里的那个证书文件,复制里面的证书串,然后到 系统证书文件夹(也就是/system/etc/security/cacerts/路径下)新建一个文件,改名称计算出来的那个hash串点Number即可。

到这里了,必须要删除你之前用户模式下装的CA证书,你才能看到你刚才新建的系统CA在信任凭据列表里了。

然后你还要把charles关掉,把夜神关掉,重启电脑,然后再把charles的 ssl proxy settings  设置为 域名* 端口*才行。不设还是会乱码。

至此,才大工告成。

原文地址:https://www.cnblogs.com/macliu/p/11379480.html

时间: 2024-10-25 03:07:36

使用charls抓包微信小程序的解决方案(终极解决,各种坑不怕,亲测可用,不服来战!)的相关文章

微信小程序wx.request组件的那些坑

最近在做一个教育的在线发布系统,打算用微信小程序做前端,后端用php的CI框架,这两天把CI框架的基本功能已经啃完,因为手册比较完善,所以按照逻辑走一边就通了. 反观微信小程序,帮助代码不多,对于一些没接触过前端和js开发的新手来说,很多流程和细节都会拿不准. 1.这两天遇到最大的困扰就是wx.request组件如何从php服务器端取回数据并显示在小程序界面上,这里涉及到一个通信, 因为小程序目前的机构和框架都是基于ajax异步交互的基础上的,所以要懂得小程序的数据读写功能,首先要了解ajax的

微信小程序模板消息群发解决思路

基于微信的通知渠道,微信为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.(微信6.5.2及以上版本支持模板功能.低于该版本将无法收到模板消息.) 模板推送位置:服务通知(点击查看详情还能跳转到下发消息的小程序的指定页面) 模板下发条件:用户本人在微信体系内与页面有交互行为后触发 微信小程序模板消息使用说明(官方文档):https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html 为了防止对模板消息的滥用,带来

微信小程序bug记录与解决

微信小程序bug记录 textarea textarea在模拟器上没有padding,可是在真机上会自带padding,而且在外部改不了,并且在安卓和IOS上padding还不一样 第一张图是在开发工具上的,第二张图是在IOS真机上的.从上图可以看出来,在开发工具上显示很正常,而且没有padding,可是在真机上左上角就出现了padding,并且无论你在外部对textarea的padding做任何处理,都无法覆盖. 目前有一种解决方式是根据ios和android的不同平台来给teaxarea设置

微信小程序getUserInfo解决方案

问题 在微信小程序开发中,获取用户信息是经常会用到的!在之前,我们直接调用wx.getUserInfo接口,就可以直接获取用户的信息,然而为了安全考虑,从2018年4月30号开始,wx.getUserInfo接口不能直接调用(接口调整),需要使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作,意外就是来的这么突然,防不胜防!!! 处理方法 1.<open-data></open-d

C# .net 填充无效,无法被移除 微信小程序解密失败的解决办法

微信小程序获取用户信息诸如unionId的时候需要解密,如果遇到偶然的解密失败(填充无效,无法被移除),原因很有可能是session_key错误, 也是就你用作解密的session_key并不是微信用作加密的那个了,但是并不代表你的session_key已经失效. C#解密代码(亲测有效,可以直接复制使用) /// <summary> /// Aes解密 /// </summary> /// <param name="str">需要解密的字符串<

微信小程序支付最容易犯的坑notify_url(支付回调)

最近做了微信小程序支付,支付成功之后发现notify_url回调地址竟然没有访问. 检查了无数次代码,下单结果里面的回调地址看了又看,都没有错啊. 把回调地址复制出来到浏览器上面,外网也是可以访问的啊. 然后我再分析,为什么以前公众号支付都没有出现这种类型的错误,偏偏小程序就出现了呢. 然后对比了一下发现应对小程序需求,我把域名换成了https的. 然后去把IIS的http访问也加上了,再把回调地址改成了http.试了一下果然有效. 最终总结:微信支付异步回调通知只能支持外网能够访问的80端口的

fiddler抓包1-抓小程序https包

一.环境准备 1.电脑已装最新版fiddler 2.手机和电脑在同一局域网 二.fiddler设置 1.fiddler>Tools>Options>HTTPS 勾选Capture HTTPS CONNECTs 及下边的子项: 2.fiddler>Tools>Options>Connections 勾选Allow remote computers to connect: 并记住这里的端口号:8888,后面会用到. 三.导出证书 1.点右上角Actions按钮 2.选第二个

微信小程序云端解决方案探索之路

小程序刚推出的时候,很多人都觉得它就是 H5,因为开发小程序的三大语言和 HTML.CSS.JS 是一脉相承的,即使改变了扩展名也改不了其实质. 那么小程序的实质到底是不是 H5 呢?经过我们的论证分析,我们认为小程序并不是 H5 应用.主要原因如下: 在小程序里面无法使用 DOM 接口,所以 HTML5 生态中一切基于 DOM 的库都无法使用(如 jQuery) 小程序并非使用 URL 访问,所以没有域名的概念.这个特性有两个影响 不存在跨域问题,所以访问控制是直接在微信 MP 上配置域名白名

微信小程序开发之IOS/Android兼容坑(持续更新)

一.时间转换问题: 这不只是小程序上面的问题是ios系统 都有这个问题就是new  Date("2017-06-16") 在IOS会出现NAN的情况所以对于时间转换需要另行封装,解决方案如下 1.替换”-“为”/“ 2.删除”.“后面的字符串(带毫秒也会有问题) 二.定位问题 整个页面的fixed定位,在ios下下拉会触发下拉事件,但是没有动画效果.Android就能正常运行 三.absolute定位问题, 这不属于手机兼容问题 使用absolute定位,并且宽带设置了100% 并且设