微信小程序反编译wxss文件缺失_微信小程序反编译 wxss反编译不成功$gwx is not defined解决方案...

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:04   2051   0

d7ba84e800f4a11f35c72da608437250.png

反编译步骤:

第一步:安装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-v4.2.4(3.0 )-Origin_icon_group-Patched_by_Alphaeva.apk

在模拟器里登陆微信,访问小程序:

在Android 手机最近使用过的微信小程序所对应的 wxapkg 包文件都存储在特定文件夹/data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg下得到最新的小程序包._***.wxapkg

长点击压缩为zip或rar,发送给朋友(另一个微信号,若没有可以按照qq传输)

第三步:下载反编译脚本

  • 这里提供一个Github上qwerty472123大神写的node.js版本的,当然也有其它版本的,例如python版本,这里只是简单地用node.js版本举例
  • 地址:https://github.com/qwerty472123/wxappUnpacker

反编译脚本为wxappUnpacker-master.zip的下载目录,加压后,进入改目录shift+鼠标右键进入当前目录的cmd命令。

把第二步得到的小程序包_***.wxapkg加压到该目录,

然后依次执行Node依赖的依赖于以下包: cssbeautifyCSSTreeVM2EsprimaUglifyESjs-beautify

具体为:

npm install cssbeautify

npm install CSSTree

npm install VM2

******

核心一:Cannot find module '***'

缺少什么类,就npm install执行它。

核心二: $gwx is not defined

这是由于反编译的脚本是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]();

}

}

微信小程序升级版反编译工具百度下载地址(内含夜神模拟器和RE工具):

链接:https://pan.baidu.com/s/1YtfH9aeVkBG365N-Fvx9XQ

提取码:rdeh

注意:很可能在出现$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 这个条件判断删除就可以。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP