微信小程序反编译实践

在做爬虫项目的时候,有时可以通过爬取小程序的后端接口的加密算法。下面是小程序反编译的实践笔记。

所需工具

  • 已获取 root 权限的 Android 手机
  • 安装了 node.js 的电脑

获取小程序包

  1. 在 Android 机上安装微信 APP,使用微信访问小程序。
  2. 在 Android 系统目录下找到小程序的包,这里推荐使用 RE 文件管理器来获取文件。
  3. 微信小程序的文件是以 .wxapkg 结尾的包文件,存放路径在 /data/data/com.tencent.mm/MicroMsg/{UserId}/appbrand/pkg/ 中。如 _-1594210091_211.wxapkg。(如果有多个包分不清哪个是目标小程序,建议先全部删除再用微信访问下目标小程序,微信会将小程序包重新下载到本地)。
  4. 将这个包拿出来传给电脑就算是获取到小程序包了。

反编译工具

反编译工具有很多,我们使用了最简单粗暴的库: 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] 

非常简单,照着命令敲下来就好啦。

反编译完成

在反编译完成后,可以直接使用微信开发者工具打开反编译出的文件查看小程序运行效果了。

当然,我们就可以看到整个小程序的代码啦~虽然代码会有一些压缩和命名混淆处理,但是大致能够看是能找到一些加密算法的端倪的。仔细阅读源码应该能找出加密算法的。

更多反编译的方法可以参阅下面的参考资料。

参考资料

  • 微信小程序“反编译”实战(一):解包
  • 微信小程序“反编译”实战(二):源码还原

你可能感兴趣的:(微信小程序反编译实践)