0%

反编译获取微信小程序源码

简单几步获取微信小程序源码

本文记录了我通过反编译获得微信小程序源码的过程.

1.环境准备

1.下载node.js,直接去官网下载,安装教程点击链接查看

2.反编译的脚本

这里直接提供,点击链接下载,下载后解压即可

3.手机模拟器,这里我用的夜神模拟器,给出官网链接,安装一路默认即可

4.RE文件管理器(非必须),我觉得这个更好操作

2.在夜神模拟器中下载微信并登录,找到想获取源码的小程序运行(建议登录微信后不要立即打开小程序,不然不好找小程序源文件包)

3.找到微信小程序源文件包

在下面目录下,

/data/data/com.tencent.mm/MicroMsg/{{一串32位的16进制字符串文件夹}}/appbrand/pkg/

会发现一些 xxxxxxx.wxapkg 类型的文件,这些就是微信小程序的包

根据时间确定源文件包

4.将源文件传至电脑

可以通过夜神模拟器的文件共享,也可以安装QQ,将源文件压缩后传至电脑

5.找到刚才解压的反编译脚本的存放目录,然后win+R打开如下窗口并输入cmd

点击确定即可,在cd 到这个存放目录,输入以下命令安装依赖

npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es

6.反编译 .wxapkg 文件

node .\wuWxapkg.js D:\_-472979937_90.wxapkg  
D:\_-472979937_90.wxapkg 改为你存放源文件的绝对目录

运行即可,下图为成功运行

7.关于出错

如果出现   Cannot find module 'xxx'  表示模块未安装
运行命令 npm install 'xxx' , 安装依赖
如果遇到 __vd_version_info__ is not defined这种报错
解决方法如下:

修改反编译脚本wuWxss.js代码,将原代码

function runVM(name,code){
let wxAppCode={},handle={cssFile:name};
let vm=new VM({sandbox:Object.assign(new GwxCfg(),{__wxAppCode__:wxAppCode,setCssToHead:cssRebuild.bind(handle)})});
vm.run(code);
for(let name in wxAppCode)if(name.endsWith(".wxss")){
handle.cssFile=path.resolve(frameName,"..",name);
wxAppCode[name]();
}
}

改为

function runVM(name,code){
let wxAppCode={},handle={cssFile:name};
let gg = new GwxCfg();
let tsandbox ={$gwx:GwxCfg.prototype["$gwx"],__mainPageFrameReady__:GwxCfg.prototype["$gwx"],__wxAppCode__:wxAppCode,setCssToHead:cssRebuild.bind(handle)};
let vm = new VM({sandbox:tsandbox});
vm.run(code);
for(let name in wxAppCode)if(name.endsWith(".wxss")){
handle.cssFile=path.resolve(frameName,"..",name);
wxAppCode[name]();
}
}

8.反编译后产生一个文件夹,和源文件同一目录

打开微信开发者工具导入小程序即可

备注:
其他平台小程序可自行尝试

-------------本文结束感谢您的阅读-------------