小程序反编译

前言

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

环境工具准备

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

以上工具打包分享:

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

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

image-20221004202820614

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

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

image-20221004213354370

小程序wxapkg文件获取

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

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

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

image-20221004205633879

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

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

image-20221004211244147

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

image-20221004214059742

小程序包反编译

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

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

反编译主包,命令如下:

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

image-20221004215138915

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

image-20221004215203580

反编译分包,命令如下:

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

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

image-20221004215852375

合并主包分包

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

image-20221005111215104

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

image-20221005111704928

image-20221005114242650

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

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

image-20221005112304816

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

image-20221005112555228

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

image-20221005112811603

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

image-20221005113252313

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

image-20221005113458421

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

posted @ 2022-10-04 20:27  流失流逝  阅读(1111)  评论(0编辑  收藏  举报