美文网首页藏兵谷Android资源
反编译小程序得到源代码

反编译小程序得到源代码

作者: 华子的笔记本 | 来源:发表于2019-02-21 16:03 被阅读503次

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

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

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

    二、安装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出来了

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

    相关文章

      网友评论

        本文标题:反编译小程序得到源代码

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