在做爬虫项目的时候,有时可以通过爬取小程序的后端接口的加密算法。下面是小程序反编译的实践笔记。
所需工具
- 已获取 root 权限的 Android 手机
- 安装了 node.js 的电脑
获取小程序包
- 在 Android 机上安装微信 APP,使用微信访问小程序。
- 在 Android 系统目录下找到小程序的包,这里推荐使用 RE 文件管理器来获取文件。
- 微信小程序的文件是以
.wxapkg
结尾的包文件,存放路径在/data/data/com.tencent.mm/MicroMsg/{UserId}/appbrand/pkg/
中。如_-1594210091_211.wxapkg
。(如果有多个包分不清哪个是目标小程序,建议先全部删除再用微信访问下目标小程序,微信会将小程序包重新下载到本地)。 - 将这个包拿出来传给电脑就算是获取到小程序包了。
反编译工具
反编译工具有很多,我们使用了最简单粗暴的库: wxappUnpacker。下面是具体的操作步骤。
# 克隆项目
$ git clone https://github.com/qwerty472123/wxappUnpacker.git
$ cd wxappUnpacker
# 安装依赖
$ npm install esprima
$ npm install css-tree
$ npm install cssbeautify
$ npm install vm2
$ npm install uglify-es
$ npm install js-beautify
$ npm install escodegen
# 将 .wxapkg 文件放到当前目录
$ node wuWxapkg.js [-d] <path/to/.wxapkg>
非常简单,照着命令敲下来就好啦。
反编译完成
在反编译完成后,可以直接使用微信开发者工具
打开反编译出的文件查看小程序运行效果了。
当然,我们就可以看到整个小程序的代码啦~虽然代码会有一些压缩和命名混淆处理,但是大致能够看是能找到一些加密算法的端倪的。仔细阅读源码应该能找出加密算法的。
更多反编译的方法可以参阅下面的参考资料。
网友评论