微信小程序API请求加解密破解

第一步:下载Fiddler,并设置https

此步骤文章比较多,不赘述,例如:www.cnblogs.com/QianyuQian/...

第二步:正式抓包开始

在PC端打开要抓包的微信小程序,此时fiddler中就会出现api请求

上图就是抓包的截图,如果你看到的是明文,至此结束~~~ 不幸的是,request和reponse都是加密的,解密正式开始~~~

第三步:解密小程序源码

我们打开过的小程序包都存放在此路径:C:\Users\你电脑的登录名\Documents\WeChat Files\Applet

wx开头的你打开过的小程序,如果你文件夹中wx开头的太多,可以删除该文件下所有文件夹,并重新打开需要解密的小程序,此时就只有待解密的小程序文件夹了,进到文件最里层,你会发现有一个__APP__.wxapkg的文件

基本步骤就是安装Nodejs,利用【小程序包解密】和【wxappUnpacker】解密小程序,破解小程序包的文章也比较多,例如:

工具下载地址:fm1223.lanpw.com/iia3K1l9hr5... 密码:4apa

安装nodejs就不说了,说下如何使用【小程序包解密】和【wxappUnpacker】 工具下载完成后,先打开UnpackMiniApp.exe(可能要安装.net framework3.5),选择要解密的小程序__APP__.wxapkg,此时会在wxpack文件夹下出现一个wxxxx.wxapkg的包包

此时再打开cmd,cd到wxappUnpacker-master路径,并执行node wuWxapkg.js wxxxxx.wxapkg,wxxxxx.wxapkg为上一步解密出现的文件路径

执行完后如下图所示,我解密的这个小程序有报错,但是不重要,因为我们只是破解api的加解密,并不打包直接运行

注:如果想破解完以后直接运行请另寻蹊径 ,因为最新版的微信对分包的小程序也打包成一个.wxapkg了,工具对这个情况还没有兼容,如果你破解的小程序没有分包应该是可以直接运行的。

此时已经破解完成,打开wxappUnpacker-master文件夹,会多出一个wxxxx的文件夹,点进去就是小程序的源码

第四步:阅读小程序源码

源码已经有了,剩下的就是掉头发的事情了~~

用微信开发者工具导入刚才的源码

第一步直接搜索api的方法名称,例如我想看的是getCouponsDetailByUserId,通过全局搜索,找到代码段,发现是通过this.$uRequest请求的,并且在then方法内是直接使用对象的,可以确定是在uRequest中统一封装的

此时我们直接全局搜uRequest,通过打的日志可以确定e是接口路由,a是明文参数,通过赋值可以确定n是request的method(也就是get、post、put......),然后在发起request时data的值是i,i是(0, t.encryptKey)(a, n)方法返回的值

仔细观察不难发现,(0, t.encryptKey)(a, n)中的t指向了a("8cd5"),那就搜索8cd5呗

8cd5中的encryptKey又指向了s,按住ctrl后点击s,成功跳转到了s方法,看到s方法后豁然开朗,get、delete调用方法v后直接加密,其他method序列化后再加密,加密方法都是调用的u.encrypt,参数e就是待加密的字符串

按理说我们应该先看方法v,实际我也是先看的v方法,后来发现加解密不调用方法v丝毫不受影响,该方法就是对get参数(例如:id=123&username=uzi做个拆分)

接下来就是主要看一下encrypt方法了,encrypt由u挂载,跳转u发现是指向了4c7d

搜索4c7d后发现方法就是最主要的加解密方法了,一看调用n.default.enc.Base64.stringify就知道是用了CryptoJS,剩下的就是本地调试下代码了~~

把4c7d最主要的两段代码复制到vs code中,然后引入CryptoJS,把通过fiddler抓到的api密文随便复制一段,运行

至此,api加解密破解完成~~

相关推荐
拖孩2 小时前
AI 帮我写的小程序「厨菜记」上线满月了,挣了两百块!!!
前端·后端·微信小程序
用户360055579002 小时前
Kestrel_VLLM - 13 · 为什么排除 MoE FFN Tiling 与 Tensor Core
前端
Hilaku2 小时前
AI 流式输出都用 SSE,什么时候必须换 WebSocket?
前端·javascript·程序员
奇牙coding2 小时前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai
小羊没烦恼!2 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
程序员老赵2 小时前
Docker 部署 Filestash:轻松搭建浏览器文件管理平台
前端·docker·开源
夏天要喝冰可乐2 小时前
给 23 万字修仙小说造个阅读站:浏览器内打包 EPUB 分页阅读 + 三主题实战
前端·产品·全栈
茶底世界之下2 小时前
林间步道要不要加暗角?用 Awaking 把强度收在20%
前端·ios·图片资源
执子念的飞鱼2 小时前
纯前端预览 275 种文件格式是怎么做到的
前端·vue.js·react.js
行者全栈架构师2 小时前
【鸿蒙心迹】互动卡片全链路——把核心功能放到桌面(FormKit 实战)(HarmonyOS 7.x)
前端·算法·架构