美文网首页
最新微信小程序解包反编译bug处理 解决 $gwx is not

最新微信小程序解包反编译bug处理 解决 $gwx is not

作者: next_discover | 来源:发表于2019-04-10 17:38 被阅读0次

前期准备:

安装node.js不作细述,按提示安装即可。安装完成后在命令窗口输入:node -v,能查看到版本号即可。
打开脚本地址下载反编译脚本,解压。
安装依赖
在脚本目录下shift+鼠标右键,打开命令窗口,逐条命令安装:
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
npm install escodegen

获取小程序.wxapkg文件
模拟器安装好RE管理器获取root权限,进入存放路径,
安卓存放路径:/data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg
其中{User}为当前用户的用户名,类似于2bc*************b65一串。

开始反编译

image.png
在脚本目录下shift+鼠标右键,打开命令窗口,输入命令:node wuWxapkg.js <files...>
<files...>是指小程序.wxapkg文件存放目录。

比如我的文件存放在D:\_xxxxxx.wxapkg
那就在命令窗口输入:node wuWxapkg.js D:\_xxxxxx.wxapkg

等待完成


image.png

错误提示代码:

ReferenceError: $gwx is not defined
   at vm.js:3:3
   at Script.runInContext (vm.js:107:20)
   at VM.run (D:\wxappUnpacker-master\node_modules\vm2\lib\main.js:208:72)
   at runVM (D:\wxappUnpacker-master\wuWxss.js:69:6)
   at runOnce (D:\wxappUnpacker-master\wuWxss.js:97:27)
   at Array.preRun (D:\wxappUnpacker-master\wuWxss.js:177:5)
   at CntEvent.decount (D:\wxappUnpacker-master\wuLib.js:17:43)
   at ioLimit.runWithCb.err (D:\wxappUnpacker-master\wuLib.js:73:11)
   at agent (D:\wxappUnpacker-master\wuLib.js:54:14)
   at FSReqWrap.oncomplete (fs.js:141:20)

解决方法

修改反编译脚本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]();
   }
}
修改完再次执行反编译命令

相关文章

网友评论

      本文标题:最新微信小程序解包反编译bug处理 解决 $gwx is not

      本文链接:https://www.haomeiwen.com/subject/ddkniqtx.html