本篇文章将详细讲解如何对线上的微信小程序进行解包反编译,并处理独立分包加载、插件等情况下的解决方法,最终获得他的源码以用来学习,没错,就是学习。😄本教程也仅用于学习。 所谓工欲善其事,必先利其器,我们先来准备一下需要准备的东西:
一台具有ROOT权限的手机。(可以使用Android模拟器) Node.js环境 反编译的脚本。
获取需要反编译小程序的包
首先,要想反编译获得微信小程序源码,那我们必须先有这个微信小程序的一个包,那我们应该怎么去获取这个包呢?我们需要一台具有ROOT权限的手机,但在9012年了,ROOT的手机应该很少了吧,那么我们可以通过Android模拟器来实现这一步。这里我推荐夜神模拟器,因为他对权限、文件的的管理会比较方便。
我们先打开模拟器或手机,因为手机自带的浏览器看不到一些隐藏的目录,所以我们下载RE浏览器,这也是要求ROOT权限的原因。打开RE浏览器,确认权限正常,进入 /data/data/com.tencent.mm/MicroMsg/appbrand 下,你会看到一个类似 a8b3488516c9d81e1d5f511891583cf9 的文件夹,这个是以用户来分类的,如果有多个,可以全删掉,进入 a8b3488516c9d81e1d5f511891583cf9 文件夹下,进入pkg文件夹下,这个文件夹就是用来防止微信小程序包的,后缀为**.wxapkg**的就是小程序的包,建议除了最大的那个(大概7-8M左右)包,其他的全部删掉,方便后续找到我们所需要的包。
准备工作完成后,我们打开微信,打开想要反编译的小程序,这是pkg目录下会出现一个新的wxapkg包,将这个包复制到电脑上。夜深模拟器的话可以通过共享文件夹实现。
反编译前准备
- 安装node.js(傻瓜式安装,不做讲解)
- 使用CMD命令行进入到我们所下载的反编译脚本目录,依次输出一下指令安装依赖:
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify