微信小程序反编译 wxss反编译不成功的解决方法

安装node.js

如果没有安装nodejs,请先安装一下
下载地址:https://nodejs.org/en/

下载安装模拟器(要求自带root权限)

可以使用夜神模拟器nox_setup_v6.2.8.3_full.exe,你也可以自选
下载地址:https://www.yeshen.com/cn/download/fullPackage

安装RE工具Root_Explorer

这个可以在应用商店或者文章末尾分享的百度云里下载

下载小程序pkg文件

使用模拟器登录微信,打开需要访问的小程序,可以会出现闪退的情况(现在微信屏蔽了模拟器打开小程序,这个不要紧,pkg文件已经下载下来了),
进入RE工具,访问/data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg下得到最新的小程序包._***.wxapkg({User}是一串16进制的数字,每个用户都不同),长点击压缩为zip或rar,发送给朋友(另一个微信号,若没有可以按照qq传输)

下载反编译脚本

这里提供一个Github上qwerty472123大神写的node.js版本的
地址:https://github.com/qwerty472123/wxappUnpacker
下载下来后,进行解压,将需要反编译的pkg文件剪切过来,让反编译脚本与pkg文件处于同一目录下载,
接着打开命令行,进入到脚本目录,安装所需要的依赖包

npm install esprima -g
npm install css-tree -g
npm install cssbeautify -g
npm install vm2 -g
npm install uglify-es -g
npm install js-beautify -g
npm install escodegen -g

安装完成后在命令行输入:

node wuWxapkg.js xx.pkg

反编译脚本就能一步将.wxapkg 文件还原为微信开发者工具能够运行的源文件,但是会出现一些错误,我们暂时可以不用管它,先使用微信开发者工具运行下小程序,打开后我们会发现样式是乱的,缺少wxss文件,

wxss反编译不成功的解决方法

这是由于反编译的脚本是2018年底的,2019年后微信升级了,需要修改下反编译脚本。找到wuWxml.js中的runVM方法,替换为如下js:

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]();
    }
}

注意:很可能在出现$gwx is not defined错误之前,先出现__vd_version_info__。
我们观察小程序的流程页page-frame.html

if (__vd_version_info__.delayedGwx) __wxAppCode__['pages/create/index.wxml'] = [ $gwx, './pages/create/index.wxml' ];    else __wxAppCode__['pages/create/index.wxml'] = $gwx( './pages/create/index.wxml' );

出现很多次如上js.发现__vd_version_info__就是多此一举,只需要把if (vd_version_info.delayedGwx) wxAppCode[‘pages/create/index.wxml’] = [ $gwx, ‘./pages/create/index.wxml’ ];
else 这个条件判断删除就可以。

微信小程序升级版反编译工具百度下载地址(内含夜神模拟器和RE工具):
链接:https://pan.baidu.com/s/1XUhx0PISXjJbxjE6p2sdPA
密码:aqd2

分享一下我做的小项目,一个动漫头像制作小工具【动漫头像生成】,大家有什么问题,可以留言共同交流。

你可能感兴趣的:(小程序)