YI597/WeChatMiniAppDecrypt

GitHub: YI597/WeChatMiniAppDecrypt

一套PC微信小程序解密与解包工具集,通过GUI自动化批量处理,将加密的wxapkg缓存文件还原为可读的小程序源码。

Stars: 0 | Forks: 1

# PC微信小程序解密与解包工具集 ![Python](https://img.shields.io/badge/Python-3.7+-blue.svg) ![Node.js](https://img.shields.io/badge/Node.js-14+-green.svg) ![License](https://img.shields.io/badge/License-GPL--3.0-orange.svg) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a3a4ffd517151104.svg)](https://github.com/YI597/WeChatMiniAppDecrypt/actions) [![Stars](https://img.shields.io/github/stars/YI597/WeChatMiniAppDecrypt?style=social)](https://github.com/YI597/WeChatMiniAppDecrypt) [![Issues](https://img.shields.io/github/issues/YI597/WeChatMiniAppDecrypt)](https://github.com/YI597/WeChatMiniAppDecrypt/issues) [![Last Commit](https://img.shields.io/github/last-commit/YI597/WeChatMiniAppDecrypt)](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, 云资产清单, 小程序解包, 小程序解密, 开源, 微信小程序, 批量处理, 抓包分析, 数字取证, 无后门, 白帽工具, 缓存提取, 自动化脚本, 自定义脚本, 逆向工具, 逆向工程