反编译小程序_微信小程序反编译学习

一、为什么学习微信小程序反编译?

微信小程序反编译通俗讲就是把已经发布的微信小程序通过反编译得到源码 学习微信小程序反编译有助于我们恢复丢失的微信小程序源码(源码不小心意外丢失没有远程备份并且无法通过数据恢复工具找回);学习其他开发者开发的微信小程序,了解别人的小程序是如何实现的

二、需要的工具(环境)

安装好windows系统的电脑一台 夜神模拟器(用来获取小程序apkg源文件) RE文件管理器(查看操作微信小程序的apkg源文件) node.js运行环境 反编译脚本

三、反编译流程

简单来说就是通过安卓模拟器(自带root环境)的微信启动小程序得到小程序编译后的源文件,在node.js的环境下再通过反编译脚本反编译出小程序源码,具体操作如下:1.安装node.js,在官网下载安装成功即可 2.下载反编译脚本备用 ,下载地址 https://github.com/gzh4213/wxappUnpacker.git 3.在电脑上安装好夜神模拟器,在官网下载安装好即可 4.安装好RE文件管理器,百度RE文件管理器(下载apk安装包拖动到夜神模拟器内自动安装) 5.在夜神模拟器搜索栏搜索微信并安装efe1926d1c6928f197813016e3432678.png6.在模拟器中登录微信并且打开要进行反编译的小程序,打开RE文件管理器按照下面的目录结构找微信小程序源文件 /data/data/com.tencent.mm/MicroMsg/{数字串}/appbrand/pkg 这个目录下包含了.wxapkg的小程序源文件,通过时间可以判断刚刚打开的是哪个小程序3f23a3405bd8962384817235188e9cc8.png7.夜神模拟器将文件发送到宿主机,这里使用夜神模拟器自带的文件助手来是实现,点击夜神浏览器右边栏的文件助手可以看到模拟器和电脑共享的文件夹(如下图),只需要通过RE文件管理器将小程序的源文件拷贝到共享文件夹,就可以在电脑上操作源文件了f420178df650823e1d42b09ef3584b87.png右键长按文件,点击右上角的压缩所选文件,鼠标右左键长按文件,弹出复制图标,点击复制以后,在右下角会出现一个文件夹图标,就是粘贴按钮(如下图),点击后会粘贴到当前目录,这里操作RE文件管理器跳转到和电脑的共享目录粘贴小程序源文件即可d6f2b1fad4a4a2f21a0e0f69778d312f.png432f4c425120a6c5a88da821187d6157.png8.通过反编译脚本反编译.wxapkg文件,以管理员身份运行cmd cd到反编译脚本目录下。比如我这里是 D:\Downloads\wxappUnpacker-master\wxappUnpacker-master,在cmd命令窗口安装如下依赖
npm install esprima    npm install css-tree    npm install cssbeautify    npm install vm2    npm install uglify-es    npm install js-beautify
9.安装好上面的依赖后,开始反编译.wxapkg文件 在.wxapkg文件的所在目录下输入node wuWxapkg.js  filepath  ,filepath  表示微信小程序源文件路径,这里我将小程序源文件从共享文件夹下拷贝到反编译脚本目录下,执行反编译命令
node wuWxapkg.js D:\Downloads\wxappUnpacker-master\wxappUnpacker-master\_1116118049_8.wxapkg
在使用node wuWxapkg.js反编译命令时,可能会遇到Cannot find module 'xxx',直接使用npm install xxx安装后,再尝试反编译,直到最后成功生成文件夹,里面就是反编译得到的源码了

四、踩的坑

1.夜神模拟器无法正常运行微信小程序,资源加载失败。夜神模拟器默认启动的时候内存分配比较小,点击设置—>性能设置可以根据自己电脑情况设置下cpu核数和内存大小 2.微信小程序.apkg包拷贝到宿主机无法通过微信发送给好友最后通过共享目录实现文件拷贝