YI597/WeChatMiniAppDecrypt
GitHub: YI597/WeChatMiniAppDecrypt
一套PC微信小程序解密与解包工具集,通过GUI自动化批量处理,将加密的wxapkg缓存文件还原为可读的小程序源码。
Stars: 0 | Forks: 1
# PC微信小程序解密与解包工具集



[](https://github.com/YI597/WeChatMiniAppDecrypt/actions)
[](https://github.com/YI597/WeChatMiniAppDecrypt)
[](https://github.com/YI597/WeChatMiniAppDecrypt/issues)
[](https://github.com/YI597/WeChatMiniAppDecrypt/commits)
一套完整的PC微信小程序解密与解包工具,支持GUI自动化批量处理。
## 功能特性
- 🔓 **GUI自动化解密** - 使用pywinauto自动操作UnpackMiniApp.exe,绕过wxid限制
- 📦 **批量解包** - 自动解包所有已解密的小程序包
- 🔍 **智能识别** - 自动识别小程序缓存目录和包版本
- ⚡ **高效处理** - 支持批量处理多个小程序
- 📊 **详细日志** - 显示解密/解包进度和结果统计
## 工作流程
```
┌─────────────────────────────────────────────────────────────────┐
│ PC微信小程序解密解包流程 │
└─────────────────────────────────────────────────────────────────┘
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ PC微信 │ │ 缓存目录 │ │ UnpackMiniApp│
│ 小程序 │ ───► │ __APP__.wxapkg│ ───► │ .exe │
│ (加密格式) │ │ (加密包) │ │ (解密工具) │
└──────────────┘ └──────────────┘ └───────┬──────┘
│
▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 微信开发者 │ │ 解包工具 │ │ 解密后 │
│ 工具打开 │ ◄─── │ wxappUnpacker│ ◄─── │ .wxapkg │
│ 源码目录 │ │ │ │ (明文包) │
└──────────────┘ └──────────────┘ └──────────────┘
```
## 目录结构
```
WeChatMiniAppDecrypt/
├── decrypt/ # 解密相关工具
│ ├── auto_decrypt_gui.py # GUI自动化批量解密脚本 (v1.0)
│ ├── auto_decrypt_gui_v2.py # 优化版解密脚本 (v2.0) ⚠️推荐
│ ├── diagnose.py # 界面访问问题诊断工具 🆕
│ ├── UnpackMiniApp.exe # 解密工具 (需单独下载)
│ └── README.md # 解密工具使用说明
│
├── unpack/ # 解包相关工具
│ ├── auto_unpack.py # 自动化解包脚本
│ ├── wxappUnpacker-master/ # wxappUnpacker解包器
│ │ ├── wuWxapkg.js # 主解包脚本
│ │ ├── wuConfig.js # 配置文件处理
│ │ ├── wuJs.js # JS文件处理
│ │ ├── wuWxml.js # WXML文件处理
│ │ ├── wuWxss.js # WXSS文件处理
│ │ └── package.json
│ └── README.md # 解包工具使用说明
│
├── docs/ # 文档
│ ├── 完整使用指南.md
│ ├── 常见问题FAQ.md
│ ├── 技术原理说明.md
│ └── 运行问题与注意事项.md # 🆕 界面问题与解决方案
│
├── examples/ # 示例
│ └── 示例截图/
│
├── decrypt_all.bat # Windows批处理解密脚本
├── decrypt_all.sh # Linux/Mac批处理解密脚本
├── README.md # 本文件
└── LICENSE # GPL-3.0许可证
```
## 快速开始
### 前置要求
- Windows 10/11 (支持GUI自动化)
- Python 3.7+
- Node.js 14+
- PC版微信已打开过小程序
### 安装步骤
1. **克隆仓库**
```
git clone https://github.com/YI597/WeChatMiniAppDecrypt.git
cd WeChatMiniAppDecrypt
```
2. **安装Python依赖**
```
pip install pywinauto
```
3. **安装Node.js依赖** (用于解包)
```
cd unpack/wxappUnpacker-master
npm install
cd ../..
```
4. **下载解密工具**
- 下载 [UnpackMiniApp](https://github.com/xhiano/UnpackMiniApp) 工具
- 将 `UnpackMiniApp.exe` 放入 `decrypt/` 目录
### 使用方法
#### 方法一:诊断并修复问题 (推荐)
如果遇到"访问小程序界面"问题,先运行诊断工具:
```
# 诊断问题
cd decrypt
python diagnose.py
# 根据诊断结果修复后,使用优化版
python auto_decrypt_gui_v2.py --debug
```
#### 方法二:快速自动解密+解包
```
# Windows - 优化版 (推荐)
python decrypt/auto_decrypt_gui_v2.py --debug
# Windows - 标准版
python decrypt/auto_decrypt_gui.py
# Linux (需要GUI环境)
python decrypt/auto_decrypt_gui_v2.py
```
#### 方法三:手动分步操作
1. **查找小程序缓存位置**
```
# PC微信小程序缓存目录
C:\Users\<用户名>\Documents\WeChat Files\Applet\
```
2. **解密小程序**
```
# 使用GUI工具手动解密,或运行自动化脚本
python decrypt/auto_decrypt_gui.py
```
3. **解包小程序**
```
# 单个解包
node unpack/wxappUnpacker-master/wuWxapkg.js <解密后的文件路径>
# 批量解包
python unpack/auto_unpack.py
```
4. **用微信开发者工具打开**
- 打开微信开发者工具
- 导入解包后的目录
- 即可查看源码
## 核心工具说明
### auto_decrypt_gui_v2.py (优化版 v2.0) ⚠️推荐
**解决"访问小程序界面"问题的新版本**,主要优化:
- 🔄 **智能重试机制** - 失败自动重试3次
- ⏱️ **动态延迟** - 根据界面响应自动调整等待时间
- 📷 **截图调试** - 保存操作截图便于排查问题
- 📝 **详细日志** - 完整的操作记录和错误追踪
- 🛡️ **错误恢复** - 单个失败不影响整体流程
```
# 推荐命令
python decrypt/auto_decrypt_gui_v2.py --debug
# 自定义参数
python decrypt/auto_decrypt_gui_v2.py -o D:\output --retries 5
```
### diagnose.py (诊断工具)
专门诊断界面访问问题:
- ✅ 检查微信客户端状态
- ✅ 检查UnpackMiniApp.exe
- ✅ 枚举窗口控件元素
- ✅ 提供修复建议
```
cd decrypt
python diagnose.py
```
### auto_decrypt_gui.py (标准版 v1.0)
GUI自动化批量解密脚本,核心功能:
- 自动查找所有小程序包
- 启动UnpackMiniApp.exe并自动操作
- 批量解密并验证输出
- 生成解密报告
```
# 配置参数
UNPACK_APP = r"D:\jm\decrypt\UnpackMiniApp.exe" # 解密工具路径
APPLET_DIR = r"C:\Users\xxx\Documents\WeChat Files\Applet" # 小程序缓存目录
OUTPUT_DIR = r"D:\jm\wxpack" # 输出目录
```
### auto_unpack.py
批量解包脚本,核心功能:
- 扫描解密后的所有.wxapkg文件
- 调用wxappUnpacker进行解包
- 自动创建AppID目录
- 生成解包报告
### wxappUnpacker
微信小程序解包工具,支持:
- 解包.wxapkg文件
- 还原.js, .json, .wxml, .wxss, .wxs文件
- 处理分包和主包
- 还原app-service.js为独立文件
## 常见问题
### Q: 解密失败,提示"找不到wxid"?
**A**: 这是PC微信小程序加密的已知问题。本工具通过GUI方式绕过此限制:
1. 使用UnpackMiniApp.exe的GUI界面
2. 它会自动处理wxid相关的解密逻辑
3. 确保使用最新版本的UnpackMiniApp
### Q: 解包后文件是加密的?
**A**: 请确保:
1. 先解密再解包
2. 解密后的文件头应为 `0xBE` (魔术头)
3. 检查是否正确使用GUI工具解密
### Q: 分包如何解包?
**A**: 使用 `-s` 参数指定主包目录:
```
node wuWxapkg.js sub-package.wxapkg -s=/path/to/main-package/
```
### Q: 解包后如何用微信开发者工具打开?
**A**:
1. 打开微信开发者工具
2. 点击"导入项目"
3. 选择解包后的目录
4. AppID可留空或填写wx+数字ID
5. 点击确定
## 技术原理
### PC微信小程序加密机制
PC版微信小程序使用AES-CBC + XOR双重加密:
```
┌──────────────────────────────────────────────┐
│ wxapkg 加密格式 │
├──────────────────────────────────────────────┤
│ [IV (16字节)] [AES加密数据] [XOR混淆] │
│ │
│ 解密步骤: │
│ 1. 使用固定密钥解密AES-CBC │
│ 2. 对结果进行XOR转换 │
│ 3. 得到原始的明文wxapkg文件 │
└──────────────────────────────────────────────┘
```
### wxapkg文件格式
```
┌──────────────────────────────────────────────┐
│ .wxapkg 文件结构 │
├──────────────────────────────────────────────┤
│ Header (14字节) │
│ ├── firstMark (1B): 0xBE │
│ ├── unknownInfo (4B) │
│ ├── infoListLength (4B) │
│ ├── dataLength (4B) │
│ └── lastMark (1B): 0xED │
│ │
│ Info List (可变长度) │
│ └── 文件条目列表 │
│ ├── fileCount │
│ └── [nameLen, name, offset, size] × N │
│ │
│ Data Section (dataLength字节) │
│ └── 所有文件内容的连续存储 │
└──────────────────────────────────────────────┘
```
## 免责声明
本工具仅供学习和研究使用,请遵守以下原则:
- 🔒 不要用于商业目的或非法用途
- 🔒 尊重小程序开发者的知识产权
- 🔒 解密的源码仅供个人学习参考
- 🔒 请勿传播或分享解密的源码
## 参考项目
- [wxappUnpacker](https://github.com/qwerty472123/wxappUnpacker) - 微信小程序解包工具
- [UnpackMiniApp](https://github.com/xhiano/UnpackMiniApp) - PC微信小程序解密工具
- [pywinauto](https://github.com/pywinauto/pywinauto) - Python Windows GUI自动化
## 更新日志
### v2.0.0 (2026-05-14)
- 🆕 **新增 auto_decrypt_gui_v2.py** - 优化版解密脚本,解决界面访问问题
- 🆕 **新增 diagnose.py** - 界面访问问题诊断工具
- 🆕 **新增 docs/运行问题与注意事项.md** - 问题汇总与解决方案
- 🔄 重试机制 (3次)
- 🔄 智能延迟等待
- 🔄 截图调试功能
- 🔄 详细日志系统
### v1.0.0 (2024-05-14)
- 🎉 初始版本发布
- ✨ 支持GUI自动化批量解密
- ✨ 支持批量自动解包
- ✨ 完整的文档和使用指南
## 许可证
[GPL-3.0](LICENSE)
## 支持
如果项目对您有帮助,请 ⭐ Star 支持一下!
Made with ❤️ for WeChat Mini App developers
标签:GNU通用公共许可证, GPL-3.0, GUI自动化, MITM代理, Node.js, PC微信, Python, pywinauto, UnpackMiniApp, wxid, 云资产清单, 小程序解包, 小程序解密, 开源, 微信小程序, 批量处理, 抓包分析, 数字取证, 无后门, 白帽工具, 缓存提取, 自动化脚本, 自定义脚本, 逆向工具, 逆向工程