Nodejs实现反编译小程序源码

原理介绍

参考:只需两步获取任何小程序源码 https://blog.****.net/qq_41139830/article/details/80531802

        当我们点开一个微信小程序的时候,其实是微信已经将它的从服务器上下载到了手机,然后再来运行的。所以我们应该可以从手机本地找到到已经下载过的小程序文件。只要对下载后的小程序文件反编译就可以了。

微信小程序的格式就是:.wxapkg

 

准备环境

1. node.js运行环境

参见:https://blog.****.net/yan_dk/article/details/90633166

 2. 反编译的脚本

Github上qwerty472123大神写的node.js版本的,当然也有其它版本的,例如python版本

地址:https://github.com/qwerty472123/wxappUnpacker

3. 安卓模拟器(要求自带root权限)

夜神模拟器

地址:https://www.yeshen.com/cn/download/fullPackage

设置一下模拟器

设置超级用户root权限

Nodejs实现反编译小程序源码 Nodejs实现反编译小程序源码

  • 模拟器安装QQ、微信

模拟器中自带微信,但版本较旧,进入后升级微信;

模拟器安装QQ,用于传输文件,可以在模拟器浏览器中安装;

模拟器安装RE管理器,用于root授权方面,似乎这步可以省略。

Nodejs实现反编译小程序源码

  • 获取小程序文件

模拟器进入微信,搜索需要反编译的小程序,如美家买菜;

然后进入模拟器的“文件管理器”,定位到目录/data/data/com.tencent.mm/MicroMsg/{一串16进制字符}/appbrand/pkg/,选中相应的小程序.wxapkg文件,压缩选择项、发送选择项。

Nodejs实现反编译小程序源码Nodejs实现反编译小程序源码Nodejs实现反编译小程序源码

这样就把相应的小程序文件发送到电脑中。

  • 反编译小程序文件

Nodejs实现反编译小程序源码

解压缩文件:# tar -zxvf _459201295_105.tar.gz

#node ../wxappUnpacker-master/wuWxapkg.js _459201295_105.wxapkg    //开始编译

若出现报错如下:

Nodejs实现反编译小程序源码

可执行安装模块 #npm install uglify-es

编译执行完成后,生成结果目录如下

Nodejs实现反编译小程序源码

至此,已完成。在小程序中运行一下看看吧。

 持续完善,待续...