1 前言
这几天在跟着师傅一起学习微信小程序的相关知识点,前面的微信小程序的漏洞挖掘蛮简单的,但是到后面需要黑盒测试了,就需要我们对小程序进行一个反编译,进行一个代码审计相关的知识点了。
小程序的反编译相关工具有好几个,下面我给师傅们都举例了我平常使用的几款github工具的简单入门使用,最后面给师傅们演示了下实战中我们如何去反编译微信的小程序。
文章目录
2 小程序反编译简介
什么是小程序?
作为中国特有的一种程序形态,小程序在我们的日常生活中已经无处不在。腾讯、百度、阿里巴巴、字节跳动、京东等各家互联网大厂都有各自的生态平台,当然,也有快应用这种行业联盟型的生态平台。
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
app和小程序的区别有什么?
方式 | 微信小程序 | APP |
下载安装 | 通过微信(扫描二维码、搜索、分享)即可获得 | 从应用商店(App Store、应用汇等)下载安装 |
内存占用 | 无需安装,和微信共用内存使用,占用内存空间忽略不计 | 安装于手机内存,一直占用内存空间,太多的 App 可能会导致内存不足 |
手机适配 | 一次开发,多终端适配 | 需适配各种主流手机,开发成本大 |
产品发布 | 提交到微信公众平台审核,云推送 | 向十几个应用商店提交审核,且各应用商店所需资料不一样,非常繁琐 |
功能区别 | 限于微信平台提供的功能 | 对硬件资源的利用更加淋漓尽致,可以做出功能、设计、效果和流畅程度远远超过小程序的软件和服务 |
传输要求 | 必须使用 HTTPS,且绑定域名需要备案,不能直接使用 IP 作为地址 | 依照开发商自主要求,HTTPS 传输可选可不选 |
开发背景 | 适合初创团队,试错成本低,需要较少时间和资金投入 | 适合成熟的商业大公司,对自我品牌要求较高的企业 |
小程序目录结构
小程序包含一个描述整体程序的 app
和多个描述各自页面的 page
。
一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:
文件 | 必需 | 作用 |
app.js | 是 | 小程序逻辑 |
app.json | 是 | 小程序公共配置 |
app.wxss | 否 | 小程序公共样式表 |
一个小程序页面由四个文件组成,分别是:
文件类型 | 必需 | 作用 |
js | 是 | 页面逻辑 |
wxml | 是 | 页面结构 |
json | 否 | 页面配置 |
wxss | 否 | 页面样式表 |
3 反编译工具箱
下面给师傅们简单介绍几款github上面的微信小程序wxapkg解包/解密工具,然后后面介绍下反编译工具
1、wxapkg解包/解密工具
wxapkg工具下载地址:https://github.com/zhuweiyou/wxapkg
简单使用
wxapkg是PC 微信小程序一键解密和解包工具,使用的使用也很方便
使用方法如下:
-
在 release 下载
wxapkg.exe
文件 -
PC 微信 -> 设置 -> 文件管理 -> 打开文件夹 -> 找到小程序文件
/WeChat Files/Applet/{wxid}/{n}/__APP__.wxapkg
-
鼠标拖动
__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
4 实操演示
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
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、反编译以后就可以看我们的文件夹里面的文件了
5 总结
这篇文章主要是介绍微信小程序的反编译过程,针对微信小程序的相关知识点进行的一个讲解,最后面以实战分析中国邮政的微信小程序包来演示,让师傅们更加清楚的了解这个微信小程序的反编译过程。最后,希望这篇文章对师傅们有帮助哈!
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取
👉1.成长路线图&学习规划👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
👉2.网安入门到进阶视频教程👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程扫描领取哈)
👉3.SRC&黑客文档👈
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦! (全套教程扫描领取哈)
👉4.护网行动资料👈
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
👉5.黑客必读书单👈
👉6.网络安全岗面试题合集👈
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~