在电脑端安装模拟器工具,夜神模拟器
在模拟器中安装微信:用于微信打开小程序时加载小程序包。
在模拟器中文件管理器:用于查看小程序包,这里使用模拟器自带的Amaze。
文件共享路径:可以通过模拟器的文件助手查看文件共享路径,模拟器中的安卓共享路径对应于电脑共享路径。作用是方便后续找到并复制小程序包。
开始反编译小程序
1、获取小程序包
这里以东方财富小程序为例,在夜神模拟器中登录微信,然后找到并打开东方财富小程序
2、打开模拟器中的Amaze文件管理器,进入到以下路径查找源码包(可以根据文件的下载时间,区分出你想要的源码包),不同的小程序中间的那段hash值是不一样的/data/data/com.tencent.mm/MicroMsg/7931eb2bec903760d4266d663b5fbd0e/appbrand/pkg
3、拷贝小程序文件包至模拟器共享文件夹,为了方便起见,可以先新建了一个文件夹wxcode,将复制的小程序包放到此文件夹下的东方财富文件夹
4、然后在电脑端的共享文件夹中,可以看到刚刚复制的小程序包
开始解包
1、进入反编译工具wxappUnpacker
项目的根目录,运行yarn install
安装依赖包
2、在wxappUnpacker
项目根目录下,执行解包命令node wuWxapkg.js <path/to/xxx.wxapkg>
。一个小程序一般会有多个包,我们需要找出主包。执行解包命令时,后面的参数需要具体到主包的文件名。经过多次试验总结发现,一般主包是以 _-
开头,文件名与其他的文件看起来是不同的。
可以看到命令行输出如下提示:
$ node wuWxapkg.js ../dongFangCaiFu/_-2081057737_66.wxapkg
Unpack file ../dongFangCaiFu/_-2081057737_66.wxapkg...
Header info:
firstMark: 0xbe
unknownInfo: 0
infoListLength: 6445
dataLength: 2158356
lastMark: 0xed
File list info:
fileCount: 172
Saving files...
Unpack done.
Split app-service.js and make up configs & wxss & wxml & wxs...
deal config ok
deal js ok
deal html ok
deal css ok
splitJs: F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66\app-se
rvice.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 02CB91817FA2198
C64ADF986253F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 0FD5E5F37FA2198
C69B38DF4E56F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 11EAF9667FA2198
C778C91613F8F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 1CC3D0F37FA2198
C7AA5B8F4A5BF1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 212D2CB47FA2198
C474B44B3E9ED1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 24EFAE017FA2198
C4289C606DDFE1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 3CE424D77FA2198
C5A824CD01A9F1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 44199CD77FA2198
C227FF4D0319E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 4C52C3117FA2198
C2A34AB16818D1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 4E3F4A367FA2198
C28592231639D1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 50E340B47FA2198
C368528B3AD5E1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2081057737_66 5A0161E27FA2198
C3C6709E5BCAF1537.js
F:\webstormProjects\mini-program\dongFangCaiFu\_-2