npm install
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
npm install jsdom
Android 手机最近使用过的微信小程序所对应的 wxapkg 包文件都存储在特定文件夹下,可通过以下命令查看:
adb pull /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg
-- node wuWxapkg.js .wxapkg
其中{User} 为当前用户的用户名,类似于 2bc**************b65。
当检测到 wxapkg 为子包时, 添加-s 参数指定主包源码路径即可自动将子包的 wxss,wxml,js 解析到主包的对应位置下. 完整流程大致如下:
- 获取主包和若干子包
- 解包主包
- windows系统使用:
./bingo.bat testpkg/master-xxx.wxapkg - Linux系统使用:
./bingo.sh testpkg/master-xxx.wxapkg
- windows系统使用:
- 解包子包
- windows系统使用:
./bingo.bat testpkg/sub-1-xxx.wxapkg -s=../master-xxx - Linux系统使用:
./bingo.sh testpkg/sub-1-xxx.wxapkg -s=../master-xxx
- windows系统使用:
TIP
-s 参数可为相对路径或绝对路径, 推荐使用绝对路径, 因为相对路径的起点不是当前目录 而是子包解包后的目录
├── testpkg
│ ├── sub-1-xxx.wxapkg #被解析子包
│ └── sub-1-xxx #相对路径的起点
│ ├── app-service.js
│ ├── master-xxx.wxapkg
│ └── master-xxx # ../master-xxx 就是这个目录
│ ├── app.json
反编译后会生成以下文件:
app-config.json: 小程序配置文件app-service.js: 小程序逻辑文件page-frame.js: 页面框架文件pages/: 页面文件目录- 包含 WXML、WXSS、JS 等源文件
components/: 组件目录wxappUnpacker.log: 反编译过程日志文件
日志文件 wxappUnpacker.log 包含以下信息:
- 文件处理过程
- 错误信息
- 格式化状态
- 时间戳
- 确保系统已安装 Node.js (建议 v12 或更高版本)
- 部分加密的小程序包可能无法完全反编译
- 反编译后的代码可能需要手动调整才能正常运行
- 仅供学习研究使用,请勿用于非法用途
- 如果出现 "Magic number 不正确" 错误,说明文件不是有效的 wxapkg 文件
- 如果出现权限错误,请确保有足够的文件读写权限
- 分包反编译时必须指定正确的主包目录
- 支持基础反编译功能
- 添加代码格式化
- 添加方法名还原
- 添加日志功能
欢迎提交 Issue 和 Pull Request 来帮助改进这个工具。
MIT License