我们在学习一项新技能时,除了认真学习官方的规范、标准和技术文档之外,还需要借鉴和参考其他优秀的产品。新手或独立学习者看到做得好的产品就想学,而往往没有好的学习渠道,因此反编译成为了一个“不太好”但有效的学习方法。闲话少说,以下是从网上搜集加自身成功实践得来的操作步骤,供大家借鉴。 一、环境准备
1、nodejs
2、安卓模拟器:夜神模拟器 (因为自带root权限)
3、re管理器 (用来查看缓存文件)
4、反编译工具脚本:wxappUnpacker,具体的微信小程序打包规则和反编译原理请自行到GitHub上查看
二、获取小程序包
1、在模拟器中安装微信,按正常操作方式打开小程序
2、在模拟器的文件浏览器上,找到类似以下路径:/data/data/com.tencent.mm/MicroMsg/1bd6bxxxxxxxxxxxxcca72bc50f0/appbrand/pkg/
1bd6bxxxxxxxxxxxxcca72bc50f0 这一串实际上是微信用户的32进制id
3、根据文件更新时间,或者凭感觉:)找到你要反编译的小程序对应的wxapkg程序包, 一般大小不会超过2mb ,有分包的现在基本无解。。。
4、利用模拟器右侧一个“电脑”图标工具,将该程序包移动到共享的文件夹,并且打开电脑文件夹,此时就从模拟器转移到电脑上了 (或者压缩然后发生给微信好友) 三、安装反编译依赖
1、先安装nodejs
2、从github上clone wxappUnpacker后,从命令行cd进入到该文件夹
3、在命令行中执行以下安装依赖包的命令:(有些教程里带了-g参数,在实操时发现还是不带好用,就在wxappunpacker的本地加载依赖项而不是全局) 后续提示缺少什么依赖就npm i +依赖名, 安装即可
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
npm install escodegen
四、开始反编译 1、继续在命令行中,执行以下命令:(该示例将要反编的包放在wxappunpacker的同级目录中)
node wuWxapkg.js _1079392110_75.wxapkg
接下来,你的终端里会出现很多的log ,只要没报错就是成功了 ,就像这样:
Saving files...
Unpack done.
Split game.js and rewrite game.json...
Splitting "/Users/binsmacbook/Desktop/未命名文件夹 2/wxappUnpacker-master-master/_1079392110_75/game.js" done.
Split and rewrite done.
Total use: 5923.808ms
同级目录下会自动生成同名的文件夹 然后使用微信开发者工具导入即可。
最后,再次强调,此方法只作为学习参考用,切勿妄而为之,切记切记!