node.js获取微信小程序代码
注意:本博客仅供学习交流参考,请不要用于商业交易。谢谢
前言:本来是想用python来爬微信小程序的源码,但是网上大部分的教程都是用node.js来进行获取,故而参照多个版本的教程结合之后成功获取了源码。
总体思路:首先要获取小程序本地源文件,然后用qq将获取的原文件发送到电脑上解压,然后用node.js反编译代码还原为源代码。
获取微信本地源文件思路:
1、微信小程序都是放在微信的服务器上,当我们第一次使用小程序时,手机会从微信服务器下载源文件保存下来,因此我们需要找到原文件存放的地址。但是如果使用自己手机来获取的话,会比较麻烦,因此选择手机模拟器来进行。这里推荐夜神模拟器,我试过用海马模拟器来进行,但是应用中心好像没有微信。
2、具体位置(以安卓手机为例):
/data/data/com.tencent.mm/MicroMsg/{一串16进制字符}/appbrand/pkg/
在上面目录下可以看到.wxapkg文件,这些就是小程序的原文件。使用模拟器可以进行访问,但是需要切换成超级用户模式。当你去访问这些文件时,模拟器会提示你切换倒也方便。如果出现权限问题也可以使用RE文件管理器,下载RE之后直接拖入模拟器中自动安装。
3、反编译成可执行的原文件
网上的教程里面都是用了一个大神写的node.js,但是我去下载的时候已经没有了。我就在github上另外找了一个反编译程序
步骤:
1、夜神模拟器:https://www.yeshen.com/
安装夜神模拟器之后,安装QQ,微信。
通过文件管理器进入,
/data/data/com.tencent.mm/MicroMsg/{一串16进制字符}/appbrand/pkg/
在上面目录下可以看到.wxapkg文件,这些就是小程序的原文件。使用模拟器可以进行访问,但是需要切换成超级用户模式。
然后长击鼠标左键压缩文件,通过QQ将文件发送到我的电脑中。
2、node.js安装与配置 地址:https://nodejs.org/en/download/
安装就不说了,基本就是按照它的提示安装,自定义安装请随意。
环境配置:
此处的环境配置主要配置的是 npm 安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径中,占C盘空间。我们希望能方便的找到安装的包和缓存并减少C盘负担。
1、安装目录下创建两个文件夹【node_global】及【node_cache】,如图:
2、打开cmd,键入下面代码
npm config set prefix “上面创建文件夹的路径\node_global”
npm config set cache “上面创建文件夹的路径\node_cache”
我的配置:
3、环境配置
右击我的电脑->属性->高级系统设置->环境变量
在系统变量中新建添加【NODE_PATH】,我的路径是【F:\Software\nodejs\node_global\node_modules】
在用户变量【Path】中以\npm结尾的路径改为【F:\Software\nodejs\node_global】
到此,环境配置完成。可以用npm install express -g等命令安装全局包,然后去上述所建文件中查看是否存在。
3、反编译程序 :https://github.com/ZhangZhongren/wxapkg
1、下载,解压之后,打开cmd。
2、cd 到解压之后的文件夹,我的位置
3、安装依赖
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
4、反编译原文件
node wuWxapkg.js -d zzzz.wxapkg
zzzz.wxapkg就是你模拟器下载的小程序文件。
但是这里报了错:
然后依次运行下面两条语句之后再重新运行反编译代码
npm i --save-dev escodegen
npm install cheerio -save
运行结果:
然后在你运行的文件夹下可以看到如下文件夹。里面就是微信小程序的源代码。