准备材料
- Node.js环境
- 反编译脚本(https://github.com/qwerty472123/wxappUnpacker)
- 安卓模拟器(夜神)
- RE管理器(https://pan.baidu.com/s/1PPBx08rNutXxhlMMJbuTpQ),用于读取root权限下的文件目录,找出微信的.wxapkg文件
使用安卓模拟器获取到.wxapkg文件
1夜神模拟器安装微信,设置中打开ROOT权限2登录微信,打开运行一次目标小程序
3回到夜神模拟器桌面,将RE管理器拖进去安装
4RE管理器将模式改变,只读→读写
5进入目录
/data/data/com.tencent.mm/MicroMsg/{一串16进制字符}/appbrand/pkg/
6这里有两个.wxapkg文件,不确定哪个是依赖哪个是源码,所以一起打压缩包传到电脑上。按住文件多选后压缩。生成的压缩包应该在其他文件夹中,具体目录在RE管理器设置中可以看到。
7将生成的压缩包用微信收藏或发送给其他人,传到电脑上即可。
反编译
1从Git上将脚本下载,通过网页直接下载,如果本地有git环境的可以直接使用命令行下载
$ git clone https://github.com/qwerty472123/wxappUnpacker.git
也可以直接访问:https://github.com/qwerty472123/wxappUnpacker.git
2下载完成后进入脚本目录下安装依赖
一、将反编译脚本clone下来、进入目录之后在当前目录打开cmd、然后依次安装如下依赖:
1、npm install esprima2、npm install css-tree3、npm install cssbeautify4、npm install vm25、npm install uglify-es6、npm install js-beautify7、npm install escodegen -g
安装完毕(也可以这样在node命令窗口中安装依赖:npm install)
node出现这样的问题解决【Module build failed: Error: Cannot find module 'escodegen' 错误】
解决方法安装!!!
npm i --save-dev escodegen
坑2报 报 Module build failed: Error: Cannot find module 'strip-comments'
解决方法安装!!!
npm install strip-comments --save-dev
node坑报错:【:internal/modules/cjs/loader.js:583】
尝试
A:npm install -g express && npm install
在使用react-native-tab-navigator组件的时候启动报如下错误:
Error: Cannot find module 'asap/raw'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:20:18)
执行命令:npm install 即可。
3最后一步是反编译.wxapkg文件 $ node wuWxapkg.js [-d] <files…>,如下
$ node .\wuWxapkg.js D:\_163200311_32.wxapkg
微信小程序的包和依赖包的后缀都是.wxapkg,真正的小程序包大小1M左右,而依赖包大小2、3M甚至更多。反编译.wxapkg依赖包会报错: Error: This Package is unrecognizable, please decrypted every type of file by hand.反编译错误的包返回结果
正确源码包的返回结果
反编译完成后,目标文件夹就是小程序源码了,打开小程序开发者可以运行。
这是一个适合初学者学习的,只是入门所以说详细,我在原博主哪里遇到的坑都写下来了。其中这个里面重点在于nodejs那个部分;
这是一个适合初学者学习的,只是入门所以说详细,我在原博主哪里遇到的坑都写下来了。其中这个里面重点在于nodejs那个部分;