反编译小程序得到源代码

一、安装安卓模拟器,取到小程序包(wxapkg)

   1、 网上很多人都用的夜神,我也试了一下,官网下载的夜神打不开微信小程序,但能下载到wxapkg包。也有人推荐雷电模拟器,无所谓了,能有wxapkg就行

    2、进入模拟器桌面的文件管理,/data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg,选中需要的wxapkg文件包,回到/mnt/shared/other/目录下,点击右上角里的粘贴,再点击安卓模拟器右侧工具竖栏里的第二个电脑形状图标,即可在电脑上打开该文件夹

反编译小程序得到源代码_第1张图片

二、安装node,安装步骤在此省略,安装完成,配置好环境变量,安装以下依赖

npm install esprima

npm install css-tree

npm install cssbeautify

npm install vm2

npm install uglify-es

npm install js-beautify

如果安装完后反编译时还提示缺少某项,用npm link xxxxx即可

三、下载反编译工具

https://github.com/qwerty472123/wxappUnpacker

github上的wxappUnpacker-master是一位大神贡献的,在此膜拜大神

下载解压后进入目录

在管理员模式下的命令行运行node wuWxapkg.js  D:work\a.wxapkg

我在实际操作中发现只是这样操作无法成功反编译出wxss文件,网上有人说是微信小程序升级造成的

反编译时提示$gwx is not defined

四、解决wxss缺失问题

网上有一篇该问题的分析贴https://aimuz.me/wei-xin-xiao-cheng-xu-fan-bian-yi-wxss-diu-shi-wen-ti.html只可惜没有出一个批量处理工具

好了,继续

修改wxappUnpacker中wuWxss.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]();

}

/*

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

}*/

}

再次反编译小程序,OK,wxss出来了

如果这篇文章解决了你的问题,欢迎打赏


反编译小程序得到源代码_第2张图片

你可能感兴趣的:(反编译小程序得到源代码)