Skip to content

反编译小程序

  1. 下载反编译脚本

最新下载地址:https://github.com/gudqs7/wxappUnpacker

用 cd 命令进入到你 clone 或者下载好的反编译脚本目录下,下载好后将 wxappUnpacker.zip 文件解压出来,这是 GitHub 上一位大神的杰作,找到了这个比较好用的,其他版本也可以。

  1. 夜神模拟器

用来找寻微信小程序源文件,真机当然也可以,但麻烦,又是 root 权限,又是越狱的,夜神模拟器方便,直接在设置里就可以设置超级用户权限,超级权限拿到,就可以为所欲为了,通过下面这个 RE 文件管理器看到微信小程序源文件。

  1. RE 文件管理器

(在模拟器内搜索安装或自动下载后导入到摸拟器安装)用来找寻微信小程序源文件。

编译流程

  1. 安装 RE 文件管理器

在模拟器内安装好 RE 文件管理器(可以在摸拟器上直接搜索“RE 文件管理器”进行安装)。

  1. 获取超级用户权限

打开手机设置->找到超级用户->右上角三个小点点击一下,设置->点击‘超级用户访问权限’,选择‘仅限于应用’,这样超级用户权限就拿到了。

或者在首次打开 RE 文件管理器进入 data 文件夹时,摸拟器会显示超级用户请求,选择“永久记住选择”—>点击“允许”,即可获取超级用户权限。

  1. 打开需要反编译的小程序

打开微信,没有的在应用市场下载就行,打开想反编译的微信小程序,小程序打开后,可以切换到 RE 文件管理器去找源文件了。

这里有一个机制,当点开一个微信小程序,如果本地这个文件夹下找到即将运行的小程序,会从微信服务器下载到本地,在以后的某个时刻又运行这个小程序,运行时,微信服务器会通知有没有小程序新版本,如有新版本,会在后台静默下载,小程序继续运行,新版本要到下一次运行才会启用,这就是微信小程序的更新机制。

  1. 获取源文件

打开 RE 文件管理器,从根目录开始。/data/data/com.tencent.mm/MicroMsg/.../appbrand/pkg/,路径中有一段...,这里表示不确定具体一个,一般是很长的数字和字母组成的文件

反正就在这个 MicroMsg 下的其中一个文件夹,紧接着会看到 appbrand 文件夹,如果这样那就找到位置了。

找到源文件后,长按左键 -> 点击右上角三个小点,打开菜单,选择‘压缩所选文件’->完成后,点击查看->长按,还是右上角,将压缩包从模拟器发送出来到电脑上,方式多种,随意。下图是以 QQ 方式发送。

  1. 下载反编译文件

从 GitHub 下载反编译文件后,在桌面就有了这样的文件夹结构 nimi-yuan 这个文件夹下这里放的是微信小程序源文件

lib 这个文件夹下放的是反编译脚本

  1. 安装依赖包
shell
# cmd 在终端进入到你刚刚下载下来的脚本目录下,依次安装以下依赖,全部安装完。

npm install esprima

npm install css-tree

npm install cssbeautify

npm install vm2

npm install uglify-es

npm install js-beautify

安装好依赖之后,就是最后一步了,反编译 .wxapkg 文件

例如:我有一个需要反编译的文件_163200311_32.wxapkg 已经解压到了 D 盘根目录下,那么就输出命令

node .\wuWxapkg.js D:\_163200311_32.wxapkg

7.反编译完成

用 node wuWxapkg.js filepath 执行成功后,查看反编译成功后的文件夹,源码中除了 project.config.json 这个配置文件,其他的都有。导入项目后就可以看到效果了,期间可能会出现一些问题,需要调试一下。

结语

至此微信小程序的反编译过程就结束了,仅供学习之用,不可它用。由此可见微信小程序源码的安全性不好,过不久估计就不能这么干了,漏洞终究会被填补的。