首页 > 编程语言 >【微信小程序反编译】入门1

【微信小程序反编译】入门1

时间:2024-09-09 13:51:44浏览次数:11  
标签:文件 入门 反编译 微信 程序 wxapkg 工具

原创 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

相关文章

  • redis入门
    redis入门Nosql与sqlNosql是什么NoSQL,指的是非关系型的数据库。NoSQL有时也称作NotOnlySQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。sql是什么sql指的是关系型数据库。关系型数据库要满足4大特征,也就是我们常提的ACID原则(A原子性、C一致性、I独立性、D......
  • MySQL零基础入门教程-8.1 表的连接\增删数据、表结构的增删改、字段约束(非空、唯一
    教程来源:B站视频BV1Vy4y1z7EX001-数据库概述_哔哩哔哩_bilibili我听课收集整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享本文内容为完整笔记的第三篇目录1、表怎么进行连接的2、insert语句可以一次插入多条记录吗?可以的!3、快速创建表?【了解内容】4、将查询结果......
  • ADB安装及使用详解(非常详细)从零基础入门到精通,看完这一篇就够了
    文章目录一、ADB简介1、什么是adb2、为什么要用adb二、准备工具1、下载adb2、配置环境变量3、连接4、电脑打开cmd窗口三、ADB命令详解1、基本命令2、权限命令3、建立连接4、apk操作指令5、文件操作指令6、日志操作指令7、系统操作指令题外话==如何入门学习网络......
  • Mathematica 入门
    前言WolframMathematica(简称MMA),是由WolframResearch开发的科学计算软件。本文我们将介绍Mathematica的界面、语法和基本应用。类似的软件还有MATLAB和Maple等。MMA官网:https://www.wolfram.com/mathematica/MMA的安装及激活:Mathematica安装激活极简教程-科研小......
  • wordpress新增文章新增评论自动通知到微信
    研究了下,如何让wordpress新增文章或者新增评论的时候通知到微信。复制下方代码,粘贴到主题的functions.php文件中即可在wordpress6.6.1版本测试通过理论上支持5.0以上的wp,有问题可以留言反馈/*在pushhub个人中心复制你的token,填入下方获取token:https://www.pushhub.c......
  • SpringMVC入门概念
    SpringMVC是目前主流的实现MVC设计模式的框架,是Spring框架的一个分支产品,以Springloc容器为基础,并利用容器的特性来简化它的配置。什么意思呢?其实就是springmvc里需要用到各种各样的组件,然后这些组件它其实就是对象,那这些对象怎么去使用呢?就交给IOC容器来管理。也就是说......
  • Redis 入门 - 安装最全讲解(Windows、Linux、Docker)
    经过上一章节的介绍,相信大家对Redis已经有了大致的认知,今天主要给大家详细讲解Redis在Windows、Linux、Docker下的安装过程。01Windows下面给大家介绍三种在Windows环境下安装Redis的方式:官方建议方式、可执行文件方式、脚本方式。1、官方建议方式Redis官方是不支持直接......
  • Redis 入门 - 图形化管理工具如何选择,最全分类
    工欲善其事必先利其器,上一章Redis服务环境已经搭建完成,现在就需要一个趁手的工具,有个好工具可以做到事半功倍。Redis图形化管理工具五花八门,可供选择的很多,大家可以根据自己的需求应用场景进行选择。就是因为选择过多所以才写了这篇文章,和大家分享下到底有哪些工具可供选择,好给......
  • 第 18 场 小白入门赛(蓝桥)水浒专场!!
    第二题:情报传递1代码1(c++):#include<iostream>usingnamespacestd;intmain(){intt;cin>>t;while(t--){inta,b,c;cin>>a>>b>>c;intsteps=0;while(a<b){......
  • JavaWeb学习笔记,关于HTML的入门标签及属性
    一.HTML入门结构标签以及特点   以上标签即为HTML的入门标签,包括了HTML的基本框架结构标签以及部分常用标签,需要注意的是,HTML的语法松散,但我们更要严格要求自己,使用正常符合要求的代码格式,以免后期出现错误而无法及时发现问题,值得提起的还有,<h1>到<h6>是HTML中预定义好......