那天我就是闲的蛋疼,突然琢磨着,微信小程序里头那些数据都是怎么跑的?能不能给它“逮”住,然后偷偷改一改?倒不是想搞破坏,就是好奇心起来了,想看看这背后的门道。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
一开始的瞎折腾
想到啥就喜欢动手搞搞。先是去网上瞎搜了一圈,“小程序抓包”、“修改数据”这类词儿敲进去,结果出来的东西五花八门,有说用微信开发者工具的,有说用各种代理工具的。开发者工具我倒是用过,但那玩意儿好像只能看自己的代码,不能随便抓别人的包?我就犯愁了,感觉不是我想要的那个路子。
选对工具是关键
左看右看,发现很多人都提到了一个叫 Charles Proxy 的玩意儿。听起来挺专业的,但看截图好像操作界面也还行,应该不至于把我搞蒙。心想,那就下载一个试试呗。官网找了半天,终于下载了个最新版,咔咔安装
环境配置,真把我搞了个半死
这Charles装才发现万里长征才刚刚开始。第一步,它得当个“中间人”,把我的手机流量都从它那儿过一遍。那就得先搞定电脑上的代理。我翻开Charles的菜单,找到代理设置,把端口号记了下来,一般都是8888。
就是手机上的操作了,这才是让我差点儿掀桌子的环节。我打开手机的Wi-Fi设置,找到当前连着的网络,点进去修改。要把“代理”改成“手动”,然后把电脑的IP地址输进去,端口号就是Charles里的8888。输完保存,那时候我心里还在犯嘀咕,这就能行吗?
最麻烦的就是证书!
事实证明,光设置代理还远远不够。一打开小程序,Charles里头是能看到一堆请求了,但全是乱码,显示个“unknown”或者“SSL Proxying Not Enabled For This Host”,我一看就知道,这是HTTPS加密的问题。我得把Charles的SSL证书安装到手机里,让它能“解密”这些请求。
-
电脑上导出证书: 我在Charles的Help菜单里找到“SSL Proxying” → “Install Charles Root Certificate on a Mobile Device or Remote Browser”。它会给我一个地址,比如
*/ssl。 - 手机上安装证书: 我在手机浏览器里输入那个地址,然后会提示下载证书。下载完,点开安装,手机又会跳出来一堆警告,说这是“不信任的证书来源”,问我确定要安装吗?我心一横,管它,就是要搞事儿,点“确定”!安装的时候,手机还会让我设置个锁屏密码,或者验证指纹,才能把这证书装进去。装完,还得去手机设置里头,找到“关于手机”或者“系统设置”里的“证书管理”,找到刚才安装的Charles证书,给它开启“信任”功能。这步骤我来来回回搞了好几趟,每次都担心把手机搞坏了,才算勉强弄
终于看到数据在跑了!
等这一切都捣鼓我再打开手机上的微信小程序,奇迹发生了!Charles里面那些原本乱码的请求,一下子变得清清楚楚,哪个请求发出去的,返回了什么数据,全都一目了然。当时那叫一个激动,就像发现了新大陆一样!
我就开始在茫茫请求中寻找我的“猎物”。我一般会先操作一下小程序,比如点个按钮,刷新一下页面,然后对比Charles里新冒出来的请求,看看哪个请求包含了我想要修改的数据。比如,我想改个商品的价格,我就去商品详情页点开它,然后看Charles里哪个请求的返回数据里有价格信息。很快,我就定位到了一个JSON格式的返回数据包,里面果然有价格字段。
动手修改数据!
找到目标请求后,我得让Charles帮我把这个请求的返回数据给拦截住,然后我再修改。Charles里有个功能叫“Rewrite”,也就是重写规则。我新建了一个Rewrite规则:
- 匹配规则: 我把目标请求的URL给填进去,或者用通配符匹配。
- 修改内容: 选择“Body”,意思是修改返回的响应体。
- 修改动作: 我选择“Replace All”,也就是替换所有。然后我就把原本返回数据里头的价格字段,从“100.00”改成了“1.00”。
设置好这个规则,我再回到小程序里,重新刷新一下商品详情页。那时候心都提到嗓子眼了,屏住呼吸死死盯着手机屏幕。一刷新,哎哟我去!真的变了!那个商品的价格赫然显示着“1.00元”!当时我就乐坏了,感觉自己成了个黑客一样,虽然知道这是在自己电脑和手机上瞎搞,没啥实际意义,但那种成功的喜悦还是让我手舞足蹈。
几点血泪教训
这整个过程下来,我觉得有几点经验教训还是得跟大家伙儿分享一下:
- 证书是重灾区: 绝大部分问题都出在SSL证书上,一定要确保手机上安装了Charles的根证书,并且在系统设置里给它信任权限。有些安卓手机还会分“用户证书”和“系统证书”,得搞清楚装到哪里。
- 目标要明确: 小程序请求那么多,别瞎抓,要明确自己想看哪个请求、改哪个数据,不然大海捞针,容易把自己搞晕。
- 耐心最重要: 搞这些东西,没人能一次成功,总会遇到这样那样的问题,证书装不上,请求看不到,或者改了数据没效果。别急,一步一步排查,多试试,总能搞定。
这回算是真的折腾明白了,微信小程序的数据抓包和修改,说难不难,说简单也不简单,主要就是耐心和细致。以后再遇到类似的需求,心里就有底了。