浅谈微信小程序反编译

admin 2024年11月12日13:00:17评论24 views字数 3171阅读10分34秒阅读模式

扫码领资料

获网安教程

浅谈微信小程序反编译

浅谈微信小程序反编译

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

浅谈微信小程序反编译
0x1 前言

这几天在跟着师傅一起学习微信小程序的相关知识点,前面的微信小程序的漏洞挖掘蛮简单的,但是到后面需要黑盒测试了,就需要我们对小程序进行一个反编译,进行一个代码审计相关的知识点了。

小程序的反编译相关工具有好几个,下面我给师傅们都举例了我平常使用的几款github工具的简单入门使用,最后面给师傅们演示了下实战中我们如何去反编译微信的小程序。

浅谈微信小程序反编译

浅谈微信小程序反编译
0x2 小程序反编译简介

什么是小程序?

作为中国特有的一种程序形态,小程序在我们的日常生活中已经无处不在。腾讯、百度、阿里巴巴、字节跳动、京东等各家互联网大厂都有各自的生态平台,当然,也有快应用这种行业联盟型的生态平台。

浅谈微信小程序反编译

app和小程序的区别有什么?

方式

微信小程序

APP

下载安装

通过微信(扫描二维码、搜索、分享)即可获得

从应用商店(App Store、应用汇等)下载安装

内存占用

无需安装,和微信共用内存使用,占用内存空间忽略不计

安装于手机内存,一直占用内存空间,太多的 App 可能会导致内存不足

手机适配

一次开发,多终端适配

需适配各种主流手机,开发成本大

产品发布

提交到微信公众平台审核,云推送

向十几个应用商店提交审核,且各应用商店所需资料不一样,非常繁琐

功能区别

限于微信平台提供的功能

对硬件资源的利用更加淋漓尽致,可以做出功能、设计、效果和流畅程度远远超过小程序的软件和服务

传输要求

必须使用 HTTPS,且绑定域名需要备案,不能直接使用 IP 作为地址

依照开发商自主要求,HTTPS 传输可选可不选

开发背景

适合初创团队,试错成本低,需要较少时间和资金投入

适合成熟的商业大公司,对自我品牌要求较高的企业

小程序目录结构

小程序包含一个描述整体程序的 app 和多个描述各自页面的 page

一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:

文件

必需

作用

app.js

小程序逻辑

app.json

小程序公共配置

app.wxss

小程序公共样式表

一个小程序页面由四个文件组成,分别是:

文件类型

必需

作用

js

页面逻辑

wxml

页面结构

json

页面配置

wxss

页面样式表

浅谈微信小程序反编译
0x3 反编译工具箱

下面给师傅们简单介绍几款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
浅谈微信小程序反编译
0x4 实操演示

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、反编译以后就可以看我们的文件夹里面的文件了

浅谈微信小程序反编译

浅谈微信小程序反编译
0x5 总结

这篇文章主要是介绍微信小程序的反编译过程,针对微信小程序的相关知识点进行的一个讲解,最后面以实战分析中国邮政的微信小程序包来演示,让师傅们更加清楚的了解这个微信小程序的反编译过程。最后,希望这篇文章对师傅们有帮助哈!

文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担。

圈子专注于更新src相关:

1、维护更新src专项漏洞知识库,包含原理、挖掘技巧、实战案例2、分享src优质视频课程3、分享src挖掘技巧tips4、微信小群一起挖洞5、不定期有众测、渗透测试项目

申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

浅谈微信小程序反编译

欢迎加入星球一起交流,券后价仅40元!!! 即将满100人涨价
长期更新,更多的0day/1day漏洞POC/EXP

原文始发于微信公众号(神农Sec):浅谈微信小程序反编译

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月12日13:00:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   浅谈微信小程序反编译http://cn-sec.com/archives/3387634.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息