前言

在日常的渗透测试项目中经常会遇到小程序测试的场景,而金融项目中又都对数据包进行了加密处理或者做了抓包限制,对我们的渗透测试造成了很大的困扰,此时可以通过对小程序进行解包,然后导入到微信开发者工具中来对小程序进行调试。

环境工具准备

  • root的Android手机或者模拟器
  • 安卓端RE管理器(reguanliqi.apk)
  • node.js运行环境
  • 解包工具(wxappUnpacker-master)
  • 微信开发者工具

以上工具打包分享:

链接: https://pan.baidu.com/s/1w842n2CZ5X2wuY8xWAbDfA 提取码: gxvp

1)下载工具包后进行解压,首先安装node.js,安装完成后使用终端输入node -vnpm -v验证是否安装成功

微信开发者工具 保存格式话 微信开发者工具打包_反编译

2)下载解包工具(wxappUnpacker-master),GitHub上也有相同功能的解包工具可以下载。下载解压后使用终端工具进入wxappUnpacker-master所在的文件夹下,安装运行工具所需的依赖模块,命令如下:(我前面提供的工具包中解包工具依赖已经安装完成了,一般情况不需要自行下载了)

npm installnpm install esprima    
npm install css-tree    
npm install cssbeautify    
npm install vm2    
npm install uglify-es    
npm install js-beautify

注意:依赖模块必须安装在脚本所在的根目录下,如下图所示,红框中为依赖模块

微信开发者工具 保存格式话 微信开发者工具打包_解包_02

小程序wxapkg文件获取

安卓平台中小程序wxapkg文件存放在此路径中:

/data/data/com.tencent.mm/MicroMsg/{一个32位的16进制文件}/appbrand/pkg/

1)为了防止其他小程序生成的wxapkg文件与目标小程序的wxapkg文件混在一起,我们首先删除所有的wxapkg文件。打开Android手机中的RE管理器,进入wxapkg文件存放路径,删除pkg文件夹。

微信开发者工具 保存格式话 微信开发者工具打包_微信开发者工具 保存格式话_03

2)在微信中打开目标小程序,尽可能的点击小程序的每个功能模块,目的是为了让小程序尽量缓存完整的wxapkg文件。

3)查看小程序wxapkg文件,进入wxapkg文件存放路径,红框中两个wxapkg包明显过大,属于微信的系统包,不是小程序缓存的数据包,小程序缓存wxapkg包最大一般在3M左右。

微信开发者工具 保存格式话 微信开发者工具打包_微信开发者工具 保存格式话_04

4)把上图中第一个和第四个小程序缓存的wxapkg包拷贝到电脑上,放在解包工具的文件夹下。如下图,我命名为test

微信开发者工具 保存格式话 微信开发者工具打包_反编译_05

小程序包反编译

一般小程序会有分包和主包,一般情况下文件最大的那个就是主包,我们优先反编译主包文件。使用终端进入wxappUnpacker-master 工具目录下,运行wuWxapkg.js 脚本进行反编译,反编译分包与主包命令不同,反编译分包时需要指明主包所在的文件夹,命令格式如下:

反编译主包:node wuWxapkg.js 主包名.wxapkg 
反编译分包:node wuWxapkg.js 分包名.wxapkg -s=主包文件夹

反编译主包,命令如下:

node wuWxapkg.js ./test/_-1800698071_76.wxapkg

微信开发者工具 保存格式话 微信开发者工具打包_分包_06

显示File done表示主包成功反编译完成,如下图

微信开发者工具 保存格式话 微信开发者工具打包_分包_07

反编译分包,命令如下:

node wuWxapkg.js ./test/_119280429_76.wxapkg -s=_-1800698071_76

提示Decompile success!表示分包反编译成功,如下图

微信开发者工具 保存格式话 微信开发者工具打包_微信开发者工具 保存格式话_08

合并主包分包

参照主包的app.json文件,根据root值看到分包名称将对应的分包文件放到主包中的路径下面

微信开发者工具 保存格式话 微信开发者工具打包_分包_09

将分包文件复制到主包相应路径下面

微信开发者工具 保存格式话 微信开发者工具打包_微信开发者工具 保存格式话_10

微信开发者工具 保存格式话 微信开发者工具打包_反编译_11

导入到微信开发者工具中进行调试

打开微信开发者工具,点击导入按钮

微信开发者工具 保存格式话 微信开发者工具打包_解包_12

选择反编译文件的主包文件夹

微信开发者工具 保存格式话 微信开发者工具打包_反编译_13

点击使用测试号,然后确定

微信开发者工具 保存格式话 微信开发者工具打包_解包_14

微信开发者工具勾选如下选项即可成功运行。(如遇到其他报错,仔细观察console控制台报错信息,自行百度处理报错内容)

微信开发者工具 保存格式话 微信开发者工具打包_解包_15

小程序运行成功截图如下:

微信开发者工具 保存格式话 微信开发者工具打包_反编译_16

大功告成,可以自由的进行测试了!!!