杂学
百家
获取微信小程序源码
由微信小程序的理念可以知道,手机上一定会有小程序的源文件。
然而凡事在这时总有个然而,
未ROOT的Android手机访问不了小程序源文件储存目录,Apple手机呢,越狱难度 >> Android ROOT。
这时我们有我知道这几种方法:
- 抓包获取源码;
- ROOT手机;
- PC端使用安卓模拟器;
emmm,作为只有一台手机的人来说,ROOT有很大风险,而我又不会抓这个的数据包,所以嘛。。。
环境
Windows10 version1903
夜神模拟器
Node.js
测试日期2019.09.17晚,微信版本为7.0.6
过程
获取源文件
- 夜神模拟器(ROOT)登入微信,打开目标小程序;
- 加载完成后即可关闭微信,下载安装
RE文件管理器
; - 赋予
RE文件管理器
超级管理员权限,打开目录/data/data/com.tencent.mm/MicroMsg/{16进制字符串}/appbrand/pkg/
; - 注意该目录下有许多
.wxapkg
后缀文件,可以根据使用时间来判断目标文件,一般小程序的文件不会太大(资源多的也就1-2M); - 复制目标文件到PC端准备好的目录下。
反编译
.wxapkg
是一个二进制文件,关于.wxapkg
的详细内容可以参考lrdcq大神的博文: 微信小程序源码阅读笔记
反编译.wxapkg
包:https://github.com/qwerty472123/wxappUnpacker,这是Github上qwerty472123
大神写的node.js版本。
但是微信7更新后,下载下来的反编译脚本之一(wxappUnpacker/wuWxss.js
)无法反编译page-frame.html
文件为wxss
格式文件。
以下为搜索到的解决方案:
- 分析
page-frame.html
文件:https://aimuz.me/wei-xin-xiao-cheng-xu-fan-bian-yi-wxss-diu-shi-wen-ti.html - 修改
wuWxss.js
1 | function runVM(name, code) { |
然后cd
到反编译脚本目录,安装以下依赖库(可以使用-g
全局安装):
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
在反编译脚本目录下输入wuWxapkg.js <target_path>
(想要反编译的文件名)e.g.目标文件_123100521.wxapkg
位于C盘根目录下,那么就输入命令 wuWxapkg.js C:\_123100521.wxapkg
脚本会在目标文件同目录下创建同名文件夹,里面就是反编译后的源代码了。