反编译wx小程序源码(以安卓模拟器为例)
安卓模拟器实验
1.准备
1.一台ROOT的安卓手机
2.解密工具:UnpackMiniApp.exe:https://gitee.com/steinven/wxpkg/blob/master/UnpackMiniApp.exe
3.反编译工具:wxappUnpacker.zip:有好多人改进的,用法类似
我用的这个:https://github.com/HQEasy/wxappUnpacker
https://gitee.com/steinven/wxpkg/blob/master/wxappUnpacker.zip
https://ukm028kzyr.feishu.cn/docs/doccnW1w3vwpcnjTeTYKcdErjtK
https://github.com/xuedingmiaojun/wxappUnpacker
4.PC安装node环境
这里先以安卓mumu模拟器为例
mumu模拟器开启root:点击右上角的三条杠进入更多选项–>进入设置中心–>基本设置–>在root权限中开启root权限–>保存关闭
2.提取微信小程序wxapkg包
PC端和mc段也能找到wxapkg文件,但是会有加密,建议直接用手机端的
打开微信进入测试的小程序
然后去目录里面找:/data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg
将里面的wxapkg
的文件导出到电脑上
如果无法确定是哪个小程序的包,可以根据文件的修改时间来判断
备注:
微信小程序文件存放路径:
|
|
3.解密
直接运行UnpackMiniApp.exe
,如果是加密的包,会自动解密。
没有加密的话,就跳过这条步骤,继续下面步骤。
4.反编译
https://github.com/HQEasy/wxappUnpacker
clone之后进入到wxappUnpacker
文件夹中,安装依赖:npm install
,
然后执行node wuWxapkg.js 包的路径
,即可解包到当前目录的一个以包名为名字的 新文件夹中:
**如果执行脚本中可能会出现以下报错(没报错请略过): **
|
|
解决方案:
第一步:修改wuWxss.js文件31行
|
|
第二步:修改wuWxss.js文件243行
|
|
5.使用
然后就是源码查看了:
在解包完成之后,我们可以直接审计代码
或者也可以打开微信小程序开发者工具,选择“导入项目”,“AppID”选择测试号并导入;接着来到“本地设置”模块, 勾选上“不校验合法域名”功能,关闭JS编译成ES5 、不校验合法域名、调试基础库,然后可以愉快的开始调试对应小程序的源码了。
PC端实验
1.打开对应小程序的目录: 打开目录我们可以看到有很多以wx开头+16位16进制数命名的文件夹,每个文件夹下就是一个微信小程序的缓存。
随便打开一个目录目录下名为__APP__.wxapkg包就是微信小程序的主包。
有些小程序可能会有下面这种情况除了__APP__.wxapkg包外还有一个或多个其他.wxapkg后缀的文件,其他的文件就是也是小程序的包,可以看做是子包,对于功能比较复杂的小程序可能会有多个包。
2.解密:
PC段为了保护源码微信使用加密的方式把wxapkg包源码进行加密,加密后的文件的起始为V1MMWX。
加密方法如下:
|
|
知道解密方法可以自己写解密工具或者用现成的:UnpackMiniApp.exe或者 https://codeload.github.com/superBiuBiuMan/wechatMiniAppReverse/zip/refs/heads/main
3.反编译: 跟移动端一样使用wxappUnpacker
进行反编译
参考文章
https://www.hackinn.com/index.php/archives/672/
https://blog.csdn.net/hbqjzx/article/details/126215511
https://www.cnblogs.com/lrain/p/16596405.html
https://blog.csdn.net/weixin_43919632/article/details/124831351