这边文章被我精简,若看全部请前往该作者博客。
原文链接:https://blog.csdn.net/qq_37936542/article/details/81003211
之前因为开发笔记本突然出了毛病,导致小程序的源代码全部丢失了,参照网上大神的博客,反编译wxapkg文件,生成小程序源码,这些原创的作者是真的强。
参考文章一:https://juejin.im/post/5b0e431f51882515497d979f
参考文章二:https://blog.csdn.net/qq_33858250/article/details/80543815
先想一个很简单的问题,小程序的源文件存放在哪里?
答:当然是微信服务器上,普通用户想要获取到,肯定是很困难的
简单思考个小程序的场景,
当我们点开一个微信小程序是很,其实是微信已经将它从服务器下载到了手机,然后再来运行的。所以,
我们没能力从服务器上获取到,但是我们可以从手机本地找到已经下载过的小程序源文件。
那么小程序文件存储再手机上的什么位置呢?
安卓手机举例:(苹果我也不知道)
/data/data/com.tencent.mm/MicroMsg/{{一串32位的16进制字符串名文件夹}}/appbrand/pkg/
在这个目录下,会发现一些xxxxxx.wxapkg类型的文件,这些就是微信小程序的包
微信小程序的格式为: .wxapkg
.wxapkg是一个二进制文件有其一套自己的结构
进入正题:
第一步:下载node.js
下载地址: https://nodejs.org/en/
二:下载反编译脚本
下载地址:https://github.com/qwerty472123/wxappUnpacker 记住分支改为master
三:下载安装夜神模拟器(反正本仙女觉得很不很好用,微信都登不上去==,或许是我人品问题)
四:下载RE文件管理器(眼睛睁大点看)
五:获取.wxapkg文件
1:打开安装好的安卓模拟器,并在模拟器中安装微信、RE文件管理器
>微信在模拟器自带的应用商店里搜索下载安装即可
>下载好的RE文件管理器安装包直接拖拽进打开的模拟器窗口就会自动安装
>按下图进行设置
3:模拟器里打开微信,在微信中运行你想要获取的小程序
>模拟器微信中运行一下后,直接切回模拟器桌面运行RE文件管理器
>按照下面的目录结构找文件
/data/data/com.tencent.mm/MicroMsg/{数字串}/appbrand/pkg/
六:反编译
准备反编译脚本文件和.wxapkg文件
cd 到下载好的反编译脚本目录下
在node命令窗口中依次安装如下依赖:
>npm install esprima
>npm install css-tree
>npm install cssbeautify
>npm install vm2
>npm install uglify-es
安装好依赖之后,就是最后一步了,反编译 .wxapkg 文件
在.wxapkg文件所在目录下输入 node wuWxapkg.js [-d] //files 就是你想要反编译的文件名 例如:我有一个需要反编译的文件 _163200311_32.wxapkg 已经解压到了D盘根目录下,那么就输出命令 node wuWxapkg.js D:\_163200311_32.wxapkg
注意1:使用node wuWxapkg.js 反编译命令时,如果报 Cannot find module 'xxx' 这种类型的错误,
就直接使用 npm install xxx 先安装