/WxAppUnpacker

微信小程序反编译脚本备份

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

MyWxAppUnpacker

版本 0.3 支持的微信版本 >20180111

Wechat App(微信小程序, .wxapkg)解包及相关文件(.wxss, .json, .wxs, .wxml)还原工具

1. 说明

  • 修复 “ReferenceError: $gwx is not defined” 和 extract wxss 等问题
  • 支持分包
  • 支持一键解包
  • 支持一键安装各种依赖

一键匹配、统计文本中的内容,请下载 calcwords

2. wxapkg 包的获取

Android 手机最近使用过的微信小程序所对应的 wxapkg 包文件都存储在特定文件夹下,可通过以下命令查看:

adb pull /data/data/com.tencent.mm/MicroMsg/{User}/appbrand/pkg ./

其中{User} 为当前用户的用户名,类似于 2bc**************b65

3. 用法

用法分 mac 和 windows,请根据系统来操作

1. for Mac OS (Mac操作系统)

  • 安装npm和node
./install.sh -npm
  • 安装依赖
./install.sh
  • 解包某个小程序
./de_miniapp.sh  -d 小程序包路径(.wxapkg格式)
  • 一键解文件夹下所有小程序
./de_miniapp.sh  小程序包所在文件夹
  • 一键解当前文件夹下所有小程序
./de_miniapp.sh

** 举例

Mac OS

./de_miniapp.sh -d ./testpkg/_-751579163_42.wxapkg

解包后的目录文件

2. for 通用操作系统(Windows 和 Mac)

  • 解包某个小程序
node wuWxapkg.js 小程序包路径(.wxapkg格式)

** 举例

node wuWxapkg.js testpkg\_-751579163_42.wxapkg
  • 分包功能

当检测到 wxapkg 为子包时, 添加-s 参数指定主包源码路径即可自动将子包的 wxss,wxml,js 解析到主包的对应位置下. 完整流程大致如下:

  1. 获取主包和若干子包
  2. 解包主包 ./bingo.sh testpkg/master-xxx.wxapkg
  3. 解包子包 ./bingo.sh testpkg/sub-1-xxx.wxapkg -s=../master-xxx

TIP

-s 参数可为相对路径或绝对路径, 推荐使用绝对路径, 因为相对路径的起点不是当前目录 而是子包解包后的目录

├── testpkg
│   ├── sub-1-xxx.wxapkg #被解析子包
│   └── sub-1-xxx               #相对路径的起点
│       ├── app-service.js
│   ├── master-xxx.wxapkg
│   └── master-xxx             # ../master-xxx 就是这个目录
│       ├── app.json

4. 提取统计WXSS或者其他样式

详情参照 calcwords

  1. 下载calcwords源码
git clone https://github.com/larack8/calcwords
  1. 设置统计的.wxapkg路径和输入结果路径,调用 calcWxssStyle
	public static void testCalcWords() throws IOException {
		String fromFilePath = "/Users/Shared/my_git/java/CalcWords/testletters/";
		String resultFilePath = "/Users/Shared/my_git/java/CalcWords/result.txt";

		calcWxssStyle(fromFilePath, resultFilePath);// 统计微信小程序源码WWXSS样式
//		calcWxssProperty(fromFilePath, resultFilePath);// 统计微信小程序源码WXSS属性
	}
  1. 打开输出结果文件

如下图样式

输出结果文件