编程语言
首页 > 编程语言> > 微信小程序抓包反编译保姆级教程

微信小程序抓包反编译保姆级教程

作者:互联网

小程序数据采集方法调研

文章目录

1.基本采集流程

一、模拟请求进行抓包

二、小程序wxapkg包的获取

三、反编译wxapkg包

四、js逆向

2.采集流程

2.1 抓包

2.1.1 抓包背景介绍

首先通过抓包操作,获得请求数据的接口,对接口进行分析,如果接口有加密参数则才需要后续的操作。

2.1.2 使用工具

2.1.3 具体抓包流程

  1. Charles安装

    https://www.charlesproxy.com/latest-release/download.do#

  2. Charles本地证书安装(本例中Charles版本为4.5.6)

    打开Charles-》Help-》Install Charles Root Certificate

在这里插入图片描述

在这里插入图片描述

安装完毕后进入刚才界面查看

在这里插入图片描述

  1. SSL代理设置
    在这里插入图片描述

在这里插入图片描述

  1. 手机证书安装(此处以IOS为例,安卓与此相像)
  1. 开始抓包(以兴盛优选小程序为例)

    • Charles使用基本介绍

      在这里插入图片描述

    • 关闭电脑端抓包

    • 进入XXXX小程序进行商品搜索

      在这里插入图片描述

    • 进入Charles,Ctrl+F进行关键字搜索
      在这里插入图片描述

    • 双击进入该请求
      在这里插入图片描述

    • 至此抓包已完成,可以直接使用postman来测试接口。

2.2 wxapkg包获取

2.2.1 wxapkg包获取背景介绍

​ 与网页端爬虫相同,有时候对接口进行分析后会发现该接口需要携带加密参数才能获取到我们想要的数据。而微信打开小程序时会先将小程序的wxapkg包下载到本地存储起来,然后进行调用,因此我们只需要获取目标小程序对应的wxapkg包,对该包进行反编译便可获得基础项目文件进行后续的js逆向操作。

2.2.2 使用工具

2.2.3 具体获取包流程

  1. 安卓模拟器下载(此处使用逍遥模拟器)

    https://www.yeshen.com/pg/jpc?utm_campaign=xypc

  2. 安装好逍遥模拟器后进入应用示长下载RE文件管理器
    在这里插入图片描述

  3. 在逍遥模拟器上安装微信,并且完成登录

  4. 下载完毕后使用RE文件管理器进入目录

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

    在这里插入图片描述

  5. 长按某个wxapkg包进行多选,删除所有wxapkg包

    在这里插入图片描述

  6. 返回微信界面,打开对应的小程序,此时返回刚才目录即可看到该小程序的wxapkg包。

  7. 使用RE文件管理器将对应wxapkg包移动到手与电脑共享目录中

    • 共享目录查看

    在这里插入图片描述
    此处安卓端的默认路径为

    /storage/emulated/0/“此处Pictures/Movies/Download/Music四个文件夹都为共享文件夹”

    • 重新进入RE文件管理器选取刚刚获得的wxapkg包,点击复制,然后移动到目标目录点击粘贴在这里插入图片描述

      移动到共享文件夹

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OFdH90TC-1611565683542)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210122170218170.png)]

    复制完成后打开电脑对应的共享文件夹即可获得wxapkg包。

2.3 wxapkg包反编译

2.3.1 反编译背景介绍

​ 目前市面上对于小程序wxapkg包的反编译主要是使用js插件wxappUnpacker,随着微信对于小程序的加密、混淆打包、分包及插件机制,小程序反编译的成功率大大降低,目前市面上比较成熟的大型小程序基本无法完成成功反编译wxml、wxss,因此小程序反编译debug运行主要依托下面几个关键要点:

2.3.2 使用工具

2.3.3 具体反编译流程

  1. node环境安装
  1. 获得wxappUnpacker脚本

2.4 微信开发者工具调试

2.4.1 开发者工具调试背景

​ 在进行加密参数破解的时候,单纯的通过前端文件来扣js代码完成逆向难度较大,因此需要通过debug模式来帮助我们找到对应的加密参数生成代码。

2.4.2 使用工具

2.4.3 具体调试流程

  1. 下载微信开发者工具

    • https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
  2. 打开开发者工具运行刚才传到windows下的项目文件(AppID可以自己注册也可以用测试号)

    • 打开项目

    • 对小程序进行重复编译,不断解决报错问题,删除不必要代码,便可正常运行小程序。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4dGe6DHg-1611565683550)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210125155142542.png)]

    • debug过程跟网页端一样,打好断点编译运行。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GvfqWeqt-1611565683551)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210125163826928.png)]
      在这里插入图片描述

2.5 总结

​ 至此,已经完成了从抓包-》获取程序包-》反编译-》js逆向(前端代码查看,debug调试)的全过程,随着微信对小程序的不断优化,小程序的反编译以及debug运行的难度也越来越困难,由于基本无法完成成功反编译wxml、wxss因此小程序爬虫主要有以下几个难点:

标签:node,反编译,微信,程序,文件夹,wxapkg,抓包
来源: https://blog.csdn.net/weixin_43900244/article/details/113123915