最近微信客户端更新后,小程序包存储路径发生了变化,导致很多使用e0e1-wx工具进行反编译的朋友遇到了路径配置问题。作为一名长期从事Web安全研究的从业者,我完整走了一遍新版环境下的配置流程,将详细解决方案分享给大家。
这个问题的核心在于:微信v8.0.30+版本调整了.wxapkg文件的存储位置结构,而e0e1-wx工具的默认配置没有同步更新。我们需要手动修改工具源码中的路径指向,才能继续正常使用反编译功能。整个过程涉及文件定位、配置修改和验证测试三个关键环节。
老版本微信中,小程序包通常存储在:
code复制/WeChat Files/Applet/[小程序ID]/.wxapkg
而新版微信(v8.0.30+)调整为:
code复制/WeChat Files/Applet/packages/[随机字符串]/.wxapkg
关键变化点:
packages中间目录层由于路径中的随机字符串难以预测,推荐使用以下方法定位:
Windows系统:
bash复制%USERPROFILE%\Documents\WeChat Files\Applet\
.wxapkg进行全路径搜索macOS系统:
bash复制find ~/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages -name "*.wxapkg"
注意:首次搜索可能需要较长时间,建议在小程序运行后立即搜索,可以缩小时间范围。
e0e1-wx的典型目录结构:
code复制e0e1-wx/
├── package/
│ ├── wx_tools.py # 核心配置文件
│ ├── decrypt.py # 解密模块
│ └── ...
├── main.py # 主入口
└── ...
需要修改的关键文件是package/wx_tools.py中的路径配置项。
wx_tools.pypython复制DEFAULT_SAVE_PATH = os.path.join(base_path, 'Applet')
修改为:
python复制DEFAULT_SAVE_PATH = os.path.join(base_path, 'Applet/packages')
配置修改示意图:
python复制# 修改前
base_path = "C:/Users/[用户名]/Documents/WeChat Files"
save_path = os.path.join(base_path, 'Applet') # 旧版路径
# 修改后
base_path = "C:/Users/[用户名]/Documents/WeChat Files"
save_path = os.path.join(base_path, 'Applet/packages') # 新版路径
修改完成后,可以通过以下命令测试:
bash复制python main.py --test-path
正常应输出类似:
code复制[SUCCESS] Path config check passed:
C:/Users/xxx/Documents/WeChat Files/Applet/packages
bash复制pip install pycryptodomex
pip install xmltodict
bash复制python main.py -d [wxapkg文件路径] -o [输出目录]
示例:
bash复制python main.py -d "C:\WeChat Files\Applet\packages\a1b2c3\.wxapkg" -o ./output
成功反编译后会生成:
code复制output/
├── app.js # 主逻辑
├── app.json # 配置文件
├── pages/ # 页面目录
│ ├── index/
│ │ ├── index.js
│ │ ├── index.wxml
│ │ └── index.wxss
├── components/ # 组件目录
└── ...
现象:修改配置后仍提示路径错误
解决方案:
/或\\)python复制import os
print(os.path.abspath(DEFAULT_SAVE_PATH))
现象:提示decrypt failed
可能原因:
处理步骤:
现象:生成的代码可读性差或缺失
优化方案:
bash复制git pull origin master
--beautify参数:bash复制python main.py -d input.wxapkg -o output --beautify
在进行小程序反编译时,请注意:
重要提示:根据《网络安全法》相关规定,未经授权的商业代码逆向可能涉及法律风险。本技术方案仅限安全研究场景使用。
实际测试中发现,新版微信的包存储机制增加了随机目录名,可能是为了提升安全性。在技术研究过程中,建议结合抓包工具(如Charles)分析小程序网络请求,可以更全面地理解小程序运行机制。