美文网首页
拿到小程序源码so easy,使用wxappUnpacker反编

拿到小程序源码so easy,使用wxappUnpacker反编

作者: 威猫爱吃鱼 | 来源:发表于2019-11-13 11:51 被阅读0次

第一次写文章,给大家写一篇关于反编译小程序的文章,虽然网络上相关的文章比较多了,但是我竟可能把自己在实际运行中遇到的问题写下来


1>配置node环境,这个很简单,到官网下载就可以啦(https://nodejs.org/en/

2>下载一个模拟器,我下载的是夜神模拟器,在夜神模拟器中下载QQ和微信,登录微信打开想要获取的小程序

3>下载一个RE文件管理器或者使用系统自带的文件管理器

https://pan.baidu.com/s/1IA19w35x_ESibyMSWGt6zQ 提取码: y49a(RE文件管理器,下载后直接拖到夜神模拟器)

我用自带的文件管理器也找到小程序包


一般情况进入文件管理器会让你授权超级权限,同意就行

文件管理系统中找到以下目录,如果没有看到文件包,可能需要重启一下

/data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg

{User} 为当前用户的用户名

接下来就是找到想要程序的.wxapkg文件包,可以通过创建时间来判断是否是自己想要的文件包,

压缩.wxapkg然后通过qq发送文件,有的人用微信发送可能会出问题

4>配置超级用户权限(打开文件管理器的时候会问你,如果没问的话,可以在设置中里面找到超级用户权限)

5>接下来是核心步骤,下载qwerty472123大神写的反编译工具

将下载的.zip解压到文件夹中

文件目录如下

把.wxapkg小程序包放到文件夹中,也可以不放

解压后,npm install一下

然后安装其他依赖包

npm install esprima

npm install css-tree

npm install cssbeautify

npm install vm2

npm install uglify-es

npm install js-beautify

npm install escodegen

下载完成后,通过cmd到文件夹下,使用node wuWxapkg.js <files...>命令

注意这里的 files 即小程序包的路径,需要写绝对路径,就能生成小程序源代码了

更多命令详细请看

本在使用wxappUnpacker反编译的时候出现了一个问题

1: __vd_version_info__ is not defined

第一个问题查阅了大部分文章,发现是微信小程序更新导致出现的问题

需要去修改wuWxss.js 文件里的runVM函数

function runVM(name, code) {

        let wxAppCode = {};

        let handle = { cssFile: name };

        let gg = new GwxCfg();

        let tsandbox = {

            $gwx: GwxCfg.prototype["$gwx"],

            __mainPageFrameReady__: GwxCfg.prototype["$gwx"],

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

            }

        }

    }

如遇到其他问题,可联系作者微信 weiweics

转发带上本链接,么么

相关文章

网友评论

      本文标题:拿到小程序源码so easy,使用wxappUnpacker反编

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