『杂项』如何对小程序进行反编译?

admin 2024年5月7日08:26:31评论8 views字数 1426阅读4分45秒阅读模式

点击蓝字

CHENJI

关注我们

日期:2024年5月6日

作者:L-Center

介绍:小程序反编译

0x00 前言

之前的文章有分享过权限调用和小程序的抓包测试,最近在学习小程序的反编译,记录一下。

0x01 提取源码

1.1 小程序框架

通过查询官方文档可以看到,整个小程序框架系统分为两部分:
逻辑层(App Service)和 视图层(View)。

小程序提供了自己的视图层描述语言WXMLWXSS,以及基于JavaScript的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑。

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

文件           必需       作用app.js         是        小程序逻辑app.json       是        小程序公共配置app.wxss       否        小程序公共样式表

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

文件类型      必需       作用js           是        页面逻辑wxml         是        页面结构json         否        页面配置wxss         否        页面样式表

1.2 工具及环境准备

在了解小程序基础框架后,需要准备以下的工具:

wxappUnpackerUnpackMiniApp微信开发者工具WinPCnode

1.3 源码提取

在电脑微信的【设置-文件管理】处打开文件夹。

『杂项』如何对小程序进行反编译?

weChat FilesWeChat Files目录下打开自己账户的文件夹。

有一个Applet的文件,但这个文件下有很多的wx-xxx文件。

我们可以通过删除所有文件再打开需要测试的小程序来确认,也可以通过查看修改时间来确认测试的小程序所在的文件夹。

『杂项』如何对小程序进行反编译?

确认好测试的小程序文件夹后,打开一个随机生成的数字文件夹,在找的格式为__APP__.wxapkg的文件,具体路径如下:

C:Users{{电脑用户名}}DocumentsWeChat FilesApplet{{小程序AppID}}{{随机产生的数字}}__APP__.wxapkg

『杂项』如何对小程序进行反编译?

1.4 源码解密

获取到__APP__.wxapkg以后,使用UnpackMiniApp工具进行解密。

『杂项』如何对小程序进行反编译?

注意的是一定要在打开原路径下进行解密,不能复制到其他位置进行解密。

『杂项』如何对小程序进行反编译?

1.5 源码反编译

拿到解密后的文件,我们需要用到wxappUnpacker工具。

首先安装node,下载地址https://nodejs.org/en/,一直点击下一步即可。

安装完成后使用node -v确认是否安装成功。

『杂项』如何对小程序进行反编译?

下载完成后安装依赖:

npm installnpm install esprimanpm install css-treenpm install cssbeautifynpm install vm2npm install uglify-esnpm install js-beautify

完成后使用node .wuWxapkg.js wx9775dbe2f7568077.wxapkg命令反编译。

『杂项』如何对小程序进行反编译?

输出完成后会在同目录下生成一个相同名字的文件夹。

使用微信开发者工具将这个文件夹开打即可。

『杂项』如何对小程序进行反编译?

0x02 总结

在进行反编译的时候遇到了几个问题:

在使用`UnpackMiniApp`工具进行解密时一定要在原目录下进行。再解密多个.wxapkg文件时,一定要将之前解密文件重命名,因为每次解密后都会默认一个名字并将之前的文件覆盖。打开文件发现有很多wxapkg加密包,这就是做了分包处理,执行node wuWxapkg.js -s=主包反编译后的目录 小程序分包所在位置。

免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。

点此亲启

原文始发于微信公众号(宸极实验室):『杂项』如何对小程序进行反编译?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月7日08:26:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   『杂项』如何对小程序进行反编译?https://cn-sec.com/archives/2712516.html

发表评论

匿名网友 填写信息