wxapkg 是一款针对微信小程序 .wxapkg 包的反编译工具,支持文件扫描、解密、解包及代码美化功能。通过反编译 wxapkg 文件(工具如 wxappUnpackerKillWxapkg),黑客可获取完整源码,进而挖掘以下漏洞,所以我们要未雨绸缪,在小程序上线前,检测我们的小程序是否存在安全问题,不给黑客可乘之机!使用wxapkg可以发现的主要漏洞统计如下:

攻击类型技术手段与风险案例风险等级
1. 硬编码敏感信息泄露- 在 app-service.js 或配置文件中搜索 appidsecret、API 密钥、数据库密码等。
案例:内测小程序反编译后暴露微信公众号的 AppSecret,攻击者可调用微信接口篡改客服账号。
⭐⭐⭐⭐⭐
2. 加密算法逆向- 定位前端加密逻辑(如 AES/DES 的 key、IV),伪造请求签名或解密传输数据。
案例:通过反编译找到签名算法,用 mitmproxy 自动重签数据包,绕过服务端校验。
⭐⭐⭐⭐
3. 未授权接口访问- 从源码中提取隐藏 API 路径和参数,构造越权请求。
案例:发现未鉴权的用户信息查询接口,通过修改 UserID 遍历获取他人数据。
⭐⭐⭐⭐⭐
4. 业务逻辑漏洞- 分析代码逻辑缺陷(如支付金额校验缺失、订单状态篡改)。
案例:某电商小程序支付时前端验证金额,攻击者篡改价格参数完成0元订单。
⭐⭐⭐⭐
5. 依赖组件漏洞- 检查第三方库版本(如旧版 vant-weapp 存在 XSS 漏洞),结合小程序上下文利用。⭐⭐⭐

一、环境准备

  1. 系统要求

    仅支持 Windows 系统
  2. 下载地址

https://github.com/wux1an/wxapkg

二、获取小程序包(.wxapkg)

方法1:PC 微信自动获取(推荐)
  1. 在 PC 微信中打开目标小程序(需微信版本支持小程序功能)。

  2. 进入目录:
    C:\Users\{{用户名}}\Documents\WeChat Files\Applet\{{小程序AppID}}\{{随机数字}}\
    找到 __APP__.wxapkg(主包)或分包文件。

方法2:安卓设备手动获取(需Root)
  1. 使用 RE文件管理器 进入路径:
    /data/data/com.tencent.mm/MicroMsg/{{32位哈希值}}/appbrand/pkg/

  2. 根据文件修改时间定位目标 .wxapkg 文件,导出到电脑。

 三、反编译操作步骤

1. 扫描小程序(推荐)
wxapkg.exe scan
  • 工具会自动扫描微信目录下所有小程序包。

  • 用 键盘上下键 选择目标小程序,按 回车 自动解密并解包。

2. 手动解包指定文件
wxapkg.exe unpack "D:\path\to\__APP__.wxapkg" --wxid=wx1234567890
  • --wxid:小程序的唯一ID(可从文件路径中的AppID文件夹名获取)。

  • 若未指定 --wxid,工具会尝试从路径正则匹配,失败则需手动输入。

四、高级参数与功能

参数作用
--disable-beautify禁用代码美化(默认开启美化JS/HTML/JSON)
-o <输出目录>自定义解包输出路径(默认输出到.wxapkg同级目录)
--verbose显示详细日志(调试用)

五、常见问题解决

  1. 解包后文件非WXML格式

    部分旧版工具输出为HTML而非WXML,需检查工具版本或改用KillWxapkg等工具。
  2. 依赖缺失报错(如 $gwx is not defined

    修改 wuWxss.js 中的 runVM 方法(参考代码片段):
let tsandbox = {
  __vd_version_info__: "",
  $gwx: GwxCfg.prototype["$gwx"],
  // ...其他参数
};
  1. 分包处理失败

    主包与分包需分别解包,子包需通过 -s 参数关联主包路径。

六、注意事项

  1. 法律风险

    反编译仅限安全研究个人代码恢复,禁止商用或侵权。
  2. 兼容性

    部分加密或混淆的小程序可能解包失败(需更新工具或手动修复)。
  3. 输出内容

    解包后的 app-service.js 含核心逻辑,page-frame.html 含页面结构,需用微信开发者工具导入验证。

总结步骤

  1. 下载工具并配置环境(Windows)。

  2. 获取 .wxapkg 文件(PC微信或安卓导出)。

  3. 运行 wxapkg.exe scan 或 unpack 命令。

  4. 处理报错(依赖/代码适配)。

  5. 用微信开发者工具导入解包目录测试。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐