大家好,我是副都督。我们常常看到优质的小程序想要学习它的逻辑或样式,但是因为小程序与网页不同,无法通过浏览器访问查看源代码。这篇文章将介绍如何通过反编译线上小程序的方式来了解它。
反编译的前提是需要拿到小程序的代码包,其后缀为.wxapkg。以下是通过反编译线上小程序的方法:
01. 获取代码包(移动端)
1. Android环境
- Android系统的手机或者模拟器,如果没有Android手机可以下载任意模拟器,如腾讯手游助手(腾讯手游助手官网_腾讯安卓模拟器_安卓模拟器电脑版下载 (qq.com))
2. 安装微信
- 这是必要条件,因为我们要获取的就是微信小程序的代码包
3. 安装RE管理器
- RE管理器 应用宝下载 安装完成后给RE授权ROOT
地址:RE管理器 rootexplorer (qq.com)
4. 获取代码包
- 启动微信小程序,尽可能的点击全部页面,然后进入RE管理器,在/data/data/com.tencent.mm/MicroMsg/用户ID/appbrand/pkg/ (用户ID为32位字母或数字组成的名称)路径下找到刚才启动的小程序包,发送到电脑端
02. 获取代码包(PC端)
1. 安装PC版微信
- 官方下载地址:微信 Windows 版 (qq.com)
2. 获取代码包
- 首先打开微信后进入想要反编译的小程序,默认路径在文档/WeChat Files/Applet路径下,以小程序ID命名,_APP__.wxapkg就是我们要找的加密包
03. 解密代码包
经过上述不同方式,我们可以得到微信小程序的代码包,但是这个时候此包还属于加密状态,需要使用工具解密。这里我们用到了解密工具“UnpackMiniApp”,工具作者为代码果,来源未知。
1. 解压下载好的解密工具
2. 运行UnpackMiniApp.exe
3. 选择加密小程序,这里默认点击跳转至PC端小程序路径
4. 解密好的小程序放在wxpack文件夹中
04. 反编译代码包
反编译之前我们需要做两件事情进行环境配置。
1. 安装nodejs环境
- 下载地址:下载 | Node.js (nodejs.org)
2. 安装依赖,以开源库中最新更新的依赖为准,当前更新日期2022-1-12:
```bash
npm install esprima
npm install css-tree
npm install cssbeautify
```
如何进行小程序反编译
本文将介绍如何使用工具进行小程序反编译。首先,需要安装必要的依赖包。
## 1. 安装依赖包
打开终端,执行以下命令:
```bash
npm install vm2
npm install uglify-es
npm install js-beautify
```
接下来,下载开源的小程序反编译工具。下载地址为:wxappUnpacker: 小程序反编译(支持分包) (gitee.com)。
## 2. 开始反编译
### 2.1 打开逆向工具
双击下载好的 `wxappUnpacker` 文件夹中的 `bin/bingo.bat` 文件,打开逆向工具。
### 2.2 安装依赖
双击打开目录下的 `README.md`,按照说明安装所需的依赖。
### 2.3 在逆向工具目录下执行命令
在 `wxappUnpacker` 目录下执行 `cmd` 命令,输入以下命令:
```bash
bingo.bat xxx.wxapkg
```
其中,`xxx.wxapkg` 是需要反编译的小程序代码包。
## 3. 检查反编译结果
反编译完成后,你会在当前目录下看到一个以小程序 ID 命名的文件夹。在这个文件夹中,你会找到反编译后的代码。你可以尝试在微信开发者工具中运行这些代码,验证其功能是否正常。需要注意的是,部分变量和函数可能存在混淆,但这并不影响程序的正常使用。耐心阅读代码,你仍然可以理解其逻辑。