原创 zkaq - Tobisec 掌控安全EDU
一、前言
这几天在跟着师傅一起学习微信小程序的相关知识点,前面的微信小程序的漏洞挖掘蛮简单的,但是到后面需要黑盒测试了,就需要我们对小程序进行一个反编译,进行一个代码审计相关的知识点了。
小程序的反编译相关工具有好几个,下面我给师傅们都举例了我平常使用的几款github工具的简单入门使用,最后面给师傅们演示了下实战中我们如何去反编译微信的小程序。
二、小程序反编译简介
什么是小程序?
作为中国特有的一种程序形态,小程序在我们的日常生活中已经无处不在。
腾讯、百度、阿里巴巴、字节跳动、京东等各家互联网大厂都有各自的生态平台,当然,也有快应用这种行业联盟型的生态平台。
app和小程序的区别有什么?
小程序目录结构
小程序包含一个描述整体程序的 app 和多个描述各自页面的 page。
一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:
一个小程序页面由四个文件组成,分别是:
三、反编译工具篇
下面给师傅们简单介绍几款github上面的微信小程序wxapkg解包/解密工具,然后后面介绍下反编译工具
1、wxapkg解包/解密工具
wxapkg
工具下载地址:
https://github.com/zhuweiyou/wxapkg
简单使用
wxapkg是PC 微信小程序一键解密和解包工具,使用的使用也很方便
使用方法如下:
1.在 release 下载 wxapkg.exe 文件
2.PC 微信 ⏩ 设置 ⏩ 文件管理 ⏩ 打开文件夹 ⏩ 找到小程序文件 /WeChat Files/Applet/{wxid}/{n}/__APP__.wxapkg
3.鼠标拖动 __APP__.wxapkg
文件到wxapkg.exe
即可完成解包, 将在当前目录输出解包后的文件夹
2、PC微信小程序一键解密软件
软件介绍
PC微信小程序一键解密软件是一款PC微信小程序包解密工具C#版,无需root或模拟器 ,说白了就是获取线上小程序源码的辅助工具,软件能够帮助用户轻松获取小程序的源码,为小程序的使用提供了帮助。
工具下载网站:
https://www.cr173.com/soft/247611.html
简单的使用就是把微信小程序的wxapkg包放入里面,然后进行解密
3、wxappUnpacker反编译
简单介绍
wxappUnpacker是基于node反编译小程序工具
工具下载地址:
https://github.com/system-cpu/wxappUnpacker
使用这个工具,先得安装npm和以下依赖环境
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
四、 实操演示
1、浅谈xxxxx.wxapkg
先来想想一个很简单的问题,小程序的源文件存放在哪?当然是在微信的服务器上。
但是在微信服务器上,普通用户想要获取到,肯定是十分困难的,有没有别的办法呢?
简单思考一下我们使用小程序的场景就会明白,当我们点开一个微信小程序的时候,其实是微信已经将它的从服务器上下载到了手机,然后再来运行的。所以,虽然我们没能力从服务器上获取到,但是我们应该可以从手机本地找到到已经下载过的小程序源文件
那么如何才能在手机里找到小程序的源文件包呢?
具体目录位置直接给出:/data/data/com.tencent.mm/MicroMsg//appbrand/pkg/
在这个目录下,会发现一些 xxxxxxx.wxapkg 类型的文件,这些就是微信小程序的包 微信小程序的格式就是:.wxapkg
。
.wxapkg
是一个二进制文件,有其自己的一套结构。
2、小程序反编译
1、第一步:先找到小程序保存的地址,一般先找到微信的文件管理下
2、第二步:然后就可以直接到刚才的存储微信文件的目录下了,可看到相关小程序了
3、我这里的wx开头的文件都是以前的小程序打开的缓存,所以可以不用看,下面我来拿某微信小程序来举例
4、我这里物理机环境有问题,这里使用虚拟机win10 给师傅们演示下 查看applet文件目录时会发现当前小程序的缓存储存文件
使用解码工具对其文件进行解码,这里有两个文件分为主包跟子包都需要解码
在wxpack目录里面放着解好的包
5、然后再使用我上面介绍的反编译工具wxappUnpacker
使用命令,先主包后子包
当检测到 wxapkg 为子包时, 添加-s 参数指定主包源码路径即可自动将子包的 wxss,wxml,js 解析到主包的对应位置下。
完整流程大致如下:
#获取主包和若干子包
//解包主包
windows系统使用: ./bingo.bat testpkg/master-xxx.wxapkg
Linux系统使用: ./bingo.sh testpkg/master-xxx.wxapkg
//解包子包
windows系统使用: ./bingo.bat testpkg/sub-1-xxx.wxapkg -s=../master-xxx
Linux系统使用: ./bingo.sh testpkg/sub-1-xxx.wxapkg -s=../master-xxx
6、反编译以后就可以看我们的文件夹里面的文件了
五、 总结
这篇文章主要是介绍微信小程序的反编译过程,针对微信小程序的相关知识点进行的一个讲解,最后面以实战分析中国邮政的微信小程序包来演示,让师傅们更加清楚的了解这个微信小程序的反编译过程。
最后,希望这篇文章对师傅们有帮助哈
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,
所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.
标签:文件,入门,反编译,微信,程序,wxapkg,工具 From: https://www.cnblogs.com/o-O-oO/p/18404364