【小程序】反编译初体验

作者: sinyu 分类: 学习笔记,小程序,总结与反思,随便写写 发布时间: 2018-10-10 20:08

写在前面

很久没有写文,最近使用到小程序开发时,发现一个很好的反编译开源程序,并记录下这一反编译的过程。另外,反编译后的代码仅做学习使用,不可随意盗取。

准备材料

  • Node.js环境
  • 反编译脚本
  • 安卓模拟器(夜神)
  • RE管理器,用于读取root权限下的文件目录,找出微信的.wxapkg文件

使用安卓模拟器获取到.wxapkg文件

  1. 夜神模拟器安装微信,设置中打开ROOT权限
  2. 登录微信,打开运行一次目标小程序
  3. 回到夜神模拟器桌面,将RE管理器拖进去安装
  4. RE管理器将模式改变,只读→读写

  5. 进入目录
/data/data/com.tencent.mm/MicroMsg/{一串16进制字符}/appbrand/pkg/

  1. 这里有两个.wxapkg文件,不确定哪个是依赖哪个是源码,所以一起打压缩包传到电脑上。按住文件多选后压缩。生成的压缩包应该在其他文件夹中,具体目录在RE管理器设置中可以看到。

  2. 将生成的压缩包用微信收藏或发送给其他人,传到电脑上即可。

反编译

  1. 从Git上将脚本下载,通过网页直接下载,如果本地有git环境的可以直接使用命令行下载
$ git clone https://github.com/qwerty472123/wxappUnpacker.git 
  1. 下载完成后进入脚本目录下安装依赖

  2. 最后一步是反编译.wxapkg文件 $ node wuWxapkg.js [-d] <files…>,如下
$ node .\wuWxapkg.js D:\_163200311_32.wxapkg

微信小程序的包和依赖包的后缀都是.wxapkg,真正的小程序包大小1M左右,而依赖包大小2、3M甚至更多。反编译.wxapkg依赖包会报错: Error: This Package is unrecognizable, please decrypted every type of file by hand.反编译错误的包返回结果

正确源码包的返回结果

反编译完成后,目标文件夹就是小程序源码了,打开小程序开发者可以运行。当然,被混淆过的小程序就无法反编译成功。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注