WeDecode:全自动化微信小程序反编译,wxapkg包源代码还原工具
项目介绍
WeDecode 是一款专为微信小程序设计的反编译工具,其主要目的是实现 wxapkg 包的自动化源代码还原。通过该工具,用户可以轻松地将打包后的小程序文件还原为可读的源代码结构,从而便于学习反编译原理、快速发现潜在漏洞或进行代码优化。工具强调“全自动化”,意味着用户无需手动干预复杂的过程,即可完成从解包到代码美化的全流程。
该工具适用于合法场景,例如安全研究、教育学习或个人项目审计,尤其在线上代码安全审计方面,能帮助开发者扫描小程序包中的潜在风险,实现快速漏洞发现。
关键功能与特点
WeDecode 的功能设计高度针对微信小程序的生态,支持大多数小程序的完美还原,包括小程序和小游戏。以下是其核心特点:
-
全面支持类型还原:
- 小程序还原。
- 小游戏还原。
- 分包代码和插件代码还原。
-
完美还原目录结构和源代码:
- JS 代码还原:恢复 JavaScript 逻辑代码。
- WXML 代码还原:恢复微信小程序的 XML 结构文件。
- WXSS 代码还原:恢复样式表,支持 rpx 或 px 单位解析(默认 rpx)。
- WXS 代码还原:恢复微信小程序的脚本模块。
- JSON 文件还原:恢复配置文件,如 app.json 或 app.config.json。
- 其他类型文件还原:包括媒体资源、WASM 文件、Workers 等。
-
自动化与美化输出:
- 所有还原代码均经过美化处理,便于阅读和分析。
- 小程序包扫描:自动检测包结构和依赖。
- Polyfill 功能:允许用户自定义模块替换,在包目录下创建 polyfill 文件夹,若模块路径匹配,将使用自定义 JS 模块覆盖原模块,实现灵活定制。
-
可视化操作:
- 支持 UI 界面,简化操作流程,无需命令行经验。
-
线上代码安全审计:
- 通过还原源代码,用户可以进行静态分析,快速识别安全漏洞,如敏感数据泄露、逻辑错误或第三方依赖风险。该功能特别适用于线上部署的小程序审计,帮助开发者在不影响生产环境的情况下进行安全检查。
未来计划包括小程序自动解密功能(当前多数电脑端包无需解密,工具将根据需求跟进)。
安装步骤
WeDecode 依赖 Node.js 环境(推荐 v18+ 版本),安装过程简单,支持 Windows、macOS 和 Linux 平台。
准备环境
- 确保设备安装 Node.js(下载地址:https://nodejs.org/)。
- 如果使用 npm 源较慢,可切换到淘宝镜像:
npm config set registry https://registry.npmmirror.com。
全局安装
- Windows:
npm i wedecode -g - macOS/Linux:
sudo npm i wedecode -g
安装完成后,在任意终端输入 wedecode 即可使用。
使用指南
WeDecode 提供多种启动方式,适应不同用户需求,包括在线运行、本地命令行和可视化 UI。
在线运行方式
无需本地安装,直接在 GitHub Codespaces 中运行:
- 访问仓库页面,点击右上角 “Use this template” -> “Open in a codespace”。
- 等待初始化(可能需几分钟,依赖网络)。
- 在终端执行
npm run ui,然后 Ctrl + 左键点击终端显示的 http://localhost:3000 链接,打开可视化页面。
注意:对网络要求高,适合临时使用。
本地运行方式
- 可视化 UI:输入
wedecode ui,浏览器将打开操作界面,支持拖拽文件或选择路径进行还原。 - 命令行引导模式:直接输入
wedecode,工具会全程交互式引导用户输入参数。 - 指定参数模式:
- 还原单个包:
wedecode ./name.wxapkg - 还原当前目录所有包:
wedecode ./ - 还原指定目录:
wedecode ./dirname - 指定输出目录:
wedecode ./ --out ./output_path - 预设参数(如清空旧产物并打开目录):
wedecode --out output_path --clear --open-dir
- 还原单个包:
命令行选项详解
WeDecode 支持丰富的命令行参数,便于自动化脚本集成:
| 参数 | 作用描述 |
|---|---|
ui | 启动本地可视化操作页面 |
<packages...> | 指定包路径(文件或目录) |
-o, --out <path> | 输出路径(默认:同级 OUTPUT 目录) |
--open-dir | 完成后打开输出目录 |
--clear | 清空旧输出产物 |
--px | 使用 px 单位解析 CSS(默认 rpx) |
--unpack-only | 只解包,不进行反编译 |
输出目录结构示例
假设输入目录:
target_dir
├── xxx.wxapkg
├── xxx-sub.wxapkg
└── polyfill/
└── @babel/
└── array.js
输出结构:
OUTPUT
├── app.json
├── pages/
├── components/
└── @babel/
└── array.js
支持平台与示例
WeDecode 跨平台支持 Windows、macOS 和 Linux,确保开发者在不同环境中无缝使用。
示例操作
- 基本还原:
wedecode ./myapp.wxapkg– 自动还原单个包到 OUTPUT 目录。 - 批量处理:
wedecode ./apps_folder– 处理文件夹内所有 wxapkg 文件。 - 安全审计:还原后,打开输出目录,检查 JS/WXML 等文件,使用静态分析工具扫描漏洞。
- UI 模式:
wedecode ui– 在浏览器中上传包,点击按钮完成还原,并查看审计报告。
结语
WeDecode 作为一款高效、自动化的微信小程序源代码还原工具,不仅简化了 wxapkg 包的处理流程,还为线上代码安全审计提供了强大支持。通过其跨平台兼容性和用户友好的界面,开发者可以更便捷地进行代码分析和漏洞发现。当然,使用时务必秉持合法原则,推动小程序生态的健康发展。如果您是小程序开发者或安全从业者,不妨试用 WeDecode,探索其潜力。更多细节可直接访问 GitHub 仓库进行深入研究。
更多推荐




所有评论(0)