一套完整的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版微信已打开过小程序
- 克隆仓库
git clone https://github.com/YI597/WeChatMiniAppDecrypt.git
cd WeChatMiniAppDecrypt- 安装Python依赖
pip install pywinauto- 安装Node.js依赖 (用于解包)
cd unpack/wxappUnpacker-master
npm install
cd ../..- 下载解密工具
- 下载 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- 查找小程序缓存位置
# PC微信小程序缓存目录
C:\Users\<用户名>\Documents\WeChat Files\Applet\- 解密小程序
# 使用GUI工具手动解密,或运行自动化脚本
python decrypt/auto_decrypt_gui.py- 解包小程序
# 单个解包
node unpack/wxappUnpacker-master/wuWxapkg.js <解密后的文件路径>
# 批量解包
python unpack/auto_unpack.py- 用微信开发者工具打开
- 打开微信开发者工具
- 导入解包后的目录
- 即可查看源码
解决"访问小程序界面"问题的新版本,主要优化:
- 🔄 智能重试机制 - 失败自动重试3次
- ⏱️ 动态延迟 - 根据界面响应自动调整等待时间
- 📷 截图调试 - 保存操作截图便于排查问题
- 📝 详细日志 - 完整的操作记录和错误追踪
- 🛡️ 错误恢复 - 单个失败不影响整体流程
# 推荐命令
python decrypt/auto_decrypt_gui_v2.py --debug
# 自定义参数
python decrypt/auto_decrypt_gui_v2.py -o D:\output --retries 5专门诊断界面访问问题:
- ✅ 检查微信客户端状态
- ✅ 检查UnpackMiniApp.exe
- ✅ 枚举窗口控件元素
- ✅ 提供修复建议
cd decrypt
python diagnose.pyGUI自动化批量解密脚本,核心功能:
- 自动查找所有小程序包
- 启动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" # 输出目录批量解包脚本,核心功能:
- 扫描解密后的所有.wxapkg文件
- 调用wxappUnpacker进行解包
- 自动创建AppID目录
- 生成解包报告
微信小程序解包工具,支持:
- 解包.wxapkg文件
- 还原.js, .json, .wxml, .wxss, .wxs文件
- 处理分包和主包
- 还原app-service.js为独立文件
A: 这是PC微信小程序加密的已知问题。本工具通过GUI方式绕过此限制:
- 使用UnpackMiniApp.exe的GUI界面
- 它会自动处理wxid相关的解密逻辑
- 确保使用最新版本的UnpackMiniApp
A: 请确保:
- 先解密再解包
- 解密后的文件头应为
0xBE(魔术头) - 检查是否正确使用GUI工具解密
A: 使用 -s 参数指定主包目录:
node wuWxapkg.js sub-package.wxapkg -s=/path/to/main-package/A:
- 打开微信开发者工具
- 点击"导入项目"
- 选择解包后的目录
- AppID可留空或填写wx+数字ID
- 点击确定
PC版微信小程序使用AES-CBC + XOR双重加密:
┌──────────────────────────────────────────────┐
│ wxapkg 加密格式 │
├──────────────────────────────────────────────┤
│ [IV (16字节)] [AES加密数据] [XOR混淆] │
│ │
│ 解密步骤: │
│ 1. 使用固定密钥解密AES-CBC │
│ 2. 对结果进行XOR转换 │
│ 3. 得到原始的明文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 - 微信小程序解包工具
- UnpackMiniApp - PC微信小程序解密工具
- pywinauto - Python Windows GUI自动化
- 🆕 新增 auto_decrypt_gui_v2.py - 优化版解密脚本,解决界面访问问题
- 🆕 新增 diagnose.py - 界面访问问题诊断工具
- 🆕 新增 docs/运行问题与注意事项.md - 问题汇总与解决方案
- 🔄 重试机制 (3次)
- 🔄 智能延迟等待
- 🔄 截图调试功能
- 🔄 详细日志系统
- 🎉 初始版本发布
- ✨ 支持GUI自动化批量解密
- ✨ 支持批量自动解包
- ✨ 完整的文档和使用指南
欢迎提交Issue和Pull Request!
如果项目对您有帮助,请 ⭐ Star 支持一下!
Made with ❤️ for WeChat Mini App developers