微信小程序反编译/解包

微信小程序反编译/解包

环境与工具

操作系统:Windows 11 23H2

微信版本:3.9.10.19

Q:如何找到小程序文件位置?
A:在微信的设置找到文件路径,小程序文件位于 \WeChat Files\Applet\

Q:小程序目录下文件太多了,找不到要解包的小程序?
A:使用 wxapkg 的 scan 功能,联网状态下会获取小程序名称。或者删除目录下所有文件再打开一次小程序。


wxapkg

⚠ 只支持 Windows 系统

安装

从 Github Release 下载可执行文件,或者下载源码编译。

使用

程序的使用说明。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

> .\wxapkg.exe -h

A tool to scan and decrypt wechat mini program

Usage:

  wxapkg [command]

Available Commands:

  help        Help about any command

  scan        Scan the wechat mini program

  unpack      Decrypt wechat mini program

Flags:

      --disable-beautify   disable js,html,json beautify

  -h, --help               help for wxapkg

  -v, --version            version for wxapkg

Use "wxapkg [command] --help" for more information about a command.

使用 scan 功能解包小程序。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

# scan 功能会扫描指定目录下所有的小程序,选择解包。

> .\wxapkg.exe scan --help

Scan the wechat mini program

Usage:

  wxapkg scan [flags]

Examples:

  wxapkg.exe scan -r "D:\WeChat Files\Applet\wx12345678901234"

# 扫描小程序文件所在路径

> .\wxapkg.exe scan -r "D:\WeChat Files\Applet"

# 打印目录下的小程序,使用上下按键选择,回车确认。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓

┃ Name    Developer                  Description         ┃

┃────────────────────────────────────────────────────────┃

┃ 跳一跳  深圳市腾讯计算机系统有限公司  比比看,谁跳得更远    ┃

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

  wxid: wx7c8d593b2c3a7703

  Name: 跳一跳

  Developer: 深圳市腾讯计算机系统有限公司

  Description: 比比看,谁跳得更远

  Location: D:\WeChat Files\Applet\wx7c8d593b2c3a7703

  Avatar: https://wx.qlogo.cn/mmhead/Q3auHgzwzM5GNaPCYMrxHaFLkh3kTduKFFbPlNmeHdkly2QlZLmtibQ/0

  All information see '.\wxid.json'

  enter unpack • ↑/k move up • ↓/j move down • q exit

# 选中后开始解包。

[+] unpack root 'D:\WeChat Files\Applet\wx7c8d593b2c3a7703' with 30 threads

[+] unpacked   185 files from 'wx7c8d593b2c3a7703\92\__WITHOUT_MULTI_PLUGINCODE__.wxapkg'

[+] all 185 files saved to 'wx7c8d593b2c3a7703'

[+] mini program detail info saved to 'wx7c8d593b2c3a7703\detail.json'

[+] extension statistics:

  - .png    153

  - .mp3     22

  - .jpg      5

  - .json     3

  - .js       1

  - .ttf      1

   

  # 解包结果在当前目录下 wx 开头文件夹。

> ls .\wx7c8d593b2c3a7703\

Mode                 LastWriteTime         Length Name

----                 -------------         ------ ----

d----           2024/1/1    11:11                92

-a---           2024/1/1    11:11            302 detail.json

使用 unpack 功能解包小程序。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

# unpack 功能用于手动指定小程序和解包输出目录。

.\wxapkg.exe unpack -h

Decrypt wechat mini program

Usage:

  wxapkg unpack [flags]

Examples:

  wxapkg.exe unpack -o unpack -r "D:\WeChat Files\Applet\wx12345678901234"

Flags:

  -h, --help            help for unpack

  -o, --output string   the output path to save result (default "unpack")

  -r, --root string     the mini progress path you want to decrypt, see: C:\Users\Null\Documents\WeChat Files\Applet\wx00000000000000

  -n, --thread int      the thread number (default 30)

Global Flags:

      --disable-beautify   disable js,html,json beautify

# 不指定输出路径,指定要解包的小程序。

> .\wxapkg.exe unpack -r "D:\WeChat Files\Applet\wx7c8d593b2c3a7703\"

[+] unpack root 'D:\WeChat Files\Applet\wx7c8d593b2c3a7703\' with 30 threads

[+] unpacked   185 files from '92\__WITHOUT_MULTI_PLUGINCODE__.wxapkg'

[+] all 185 files saved to 'unpack'

[+] extension statistics:

  - .png    153

  - .mp3     22

  - .jpg      5

  - .json     3

  - .ttf      1

  - .js       1

# 不指定输出路径的情况下,默认解压到当前目录的 unpack 文件夹。

> ls .\unpack\

Mode                 LastWriteTime         Length Name

----                 -------------         ------ ----

d----           2024/1/1    11:11                92

# 可以使用 -o 参数指定输出路径。

查看解包结果。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

# 解包结果没有小程序原始工程文件结构,关键代码在 game.js 文件。

> tree .\unpack\92\ /f

D:\WXAPKG\UNPACK\92

│  app-config.json

│  game.js

│  package-lock.json

│  package.json

└─res

    │  0.png

    │  1.png

    │  ......

    ├─2d

    │      555.png

    │      auth.png

    │      ......

    └─auth

            rank_tip.png

            refresh.png


unveilr

⚠新版功能更丰富,但转为闭源,订阅制收费。本文使用 2.0 免费版本。

安装

付费使用最新版,免费使用流传最后一版免费版本。

使用

程序功能帮助。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

> .\unveilr.exe -h

Usage: unveilr [wx] [options]

Options:

  -v, --version               output the version number

  -l, --log-level <level>     Set log level (choices: "debug", "info", "warn", "error", default: "info")

  -h, --help                  display help for command

Commands:

  wx [options] <packages...>  Decompile the WeChat applet

  help [command]              display help for command

Example:

  $ unveilr /path/to/wxapkg/dir/

  $ unveilr 1.wxapkg 2.wxapkg 3.wxapkg ...

  $ unveilr wx /path/to/wxapkg/dir/           Specify wx subcommand

  $ unveilr wx 1.wxapkg 2.wxapkg 3.wxapkg ... Specify wx subcommand

  $ unveilr wx -h                             Show wx help info

解包使用。

1

2

3

4

5

6

# 提供小程序包 wxapkg 所在路径直接解包,结果在目标小程序同路径下(\WeChat Files\Applet\wx000\01\)。

# 允许多个包输入或者一个路径。

> .\unveilr.exe "D:\WeChat Files\Applet\wx7c8d593b2c3a7703\92\"

[INFO] 00:29:08 <Core> From D:\WeChat Files\Applet\wx7c8d593b2c3a7703\92\__WITHOUT_MULTI_PLUGINCODE__.wxapkg detected wxAppId: wx7c8d593b2c3a7703

[INFO] 00:29:08 <Core> The package D:\WeChat Files\Applet\wx7c8d593b2c3a7703\92\__WITHOUT_MULTI_PLUGINCODE__.wxapkg type is: [GAME]

[INFO] 00:29:10 <Bucket> Storage has written 338 files

wx 子命令支持更多操作。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

> .\unveilr.exe wx -h

Usage: unveilr wx [options] <packages...>

Decompile the WeChat applet

Arguments:

  packages              Set package path, could be a file, directory or multiple files

Options:

  -i, --appid <appid>   Set wxAppId, not provided will try to fetch from path

  -f, --format          Enable format code

  --no-clear-decompile  Retain decompiling residual files

  --no-clear-save       The path to be saved will not be cleared

  -p, --no-parse        Only extract files, do not parse

  -d, --depth <depth>   Set read-depth (default: 1)

  -o, --output <path>   Set output path, default: main package whit out

  --clear-output        Empty the specified output folder

  -h, --help            display help for command

# 解包小程序并输出到 .\tyt,同时格式化输出得到小程序原有结构。

>  .\unveilr.exe wx "D:\WeChat Files\Applet\wx7c8d593b2c3a7703\92\" -o .\tyt -f

[WARN] 00:38:52 <Bucket> Turning on code formatting can slow down some operations

[INFO] 00:38:52 <Core> From D:\WeChat Files\Applet\wx7c8d593b2c3a7703\92\__WITHOUT_MULTI_PLUGINCODE__.wxapkg detected wxAppId: wx7c8d593b2c3a7703

[INFO] 00:38:52 <Core> The package D:\WeChat Files\Applet\wx7c8d593b2c3a7703\92\__WITHOUT_MULTI_PLUGINCODE__.wxapkg type is: [GAME]

[INFO] 00:38:57 <Bucket> Storage has written 338 files

# 解包结果有小程序原始工程文件结构,可以看到文件排布。

> tree .\tyt\ /f

D:\WXAPK\UNVEILR\TYT

│  game.js

│  game.json

│  package-lock.json

│  package.json

├─@babel

│  └─runtime

│      └─helpers

│              Arrayincludes.js

│              ......

├─js

│  │  block.js

│  │  ......

│  │

│  ├─control

│  │      battleCtrl.js

│  │      ......

│  │

│  │ ......

│  │

│  └─util

│          common.js

│          encryption.js

│          forceUpdate.js

│          log.js

│          util.js

└─res

    │  ......

    

    └─auth

            rank_tip.png

            refresh.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/639818.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32笔记-AD模数转换

目录 一、ADC介绍 二、ADC主要特征 三、ADC框图 1. ​​​​ 外部触发转换 ​ 2. 转换模式 3. 输入通道 4. 逻辑框图 四、校准 五、数据对齐 六、AD转换步骤 七、AD_Init(单通道AD转换)初始化函数配置 DMA: adc_dma_mode_enable(ADC0); 这段代码是用来使能ADC的DMA&a…

怎么一键消除路人?教你三个消除方法

怎么一键消除路人&#xff1f;在数字时代&#xff0c;摄影已成为我们记录生活、表达情感的重要方式。然而&#xff0c;完美的照片背后往往隐藏着一些不那么完美的元素——比如那些不经意间闯入镜头的路人。他们或许只是匆匆过客&#xff0c;但却足以破坏你精心构图的美好瞬间。…

视觉SLAM十四讲:从理论到实践(Chapter5:相机与图像)

前言 学习笔记&#xff0c;仅供学习&#xff0c;不做商用&#xff0c;如有侵权&#xff0c;联系我删除即可 目标 理解针孔相机的模型、内参与径向畸变参数。理解一个空间点是如何投影到相机成像平面的。掌握OpenCV的图像存储与表达方式。学会基本的摄像头标定方法。 一、相…

PS —— 精修图像

PS —— 精修图像 修复污点修复画笔工具修复画笔工具 美白滤镜去杂锐化加杂减淡和锐化工具 我觉得今天这篇博客&#xff0c;无论是男同胞还是女同胞&#xff0c;都要熟练掌握&#xff08;哈哈哈哈…) 今天我们来学习如何精修图像&#xff0c;精修图像一般分为几步——修复&…

5.24学习记录

[FSCTF 2023]ez_php2 比较简单的pop链 <?php highlight_file(__file__); Class Rd{public $ending;public $cl;public $poc;public function __destruct(){echo "All matters have concluded";die($this->ending);}public function __call($name, $arg){for…

Sap Hana 数据迁移同步优化(二)

简述 CloudCanal 近期对 Hana 源端链路做了新一轮优化&#xff0c;这篇文章简要做下分享。 本轮优化主要包含: 表级别 CDC 表表级别任务位点表级别触发器 单 CDC 表的问题 CloudCanal 在实现 Hana 源端增量同步时&#xff0c;最初采用的是单 CDC 表的模式。 即所有订阅表…

2024年5月23日 (周四) 叶子游戏新闻

《Unclogged》Steam页面上线 马桶主题恐怖逃脱解谜Brody制作并发行&#xff0c;一款奇葩创意马桶主题恐怖逃脱解谜新游《Unclogged》Steam页面上线&#xff0c;本作暂不支持中文。 Meta人工智能主管杨立昆 大语言模型不会达到人类智能水平IT之家今日&#xff08;5月23日&#x…

B站pink老师CSS学习(二)

文章目录 一、emmet语法1.快速生成HTML结构语法 二、复合选择器1.什么是复合选择器2.后代选择器3.子选择器4.并集选择器5.伪类选择器6.链接伪类选择器7&#xff1a;focus伪类选择器8.总结 三、元素的显示模式1.什么是元素显示模式2.块元素3.行内元素4.行内块元素5.总结6.元素显…

黑马点评1——短信篇(基于session)

&#x1f308;hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;一名不断学习的码农&#xff0c;很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 &#x1f3c3;人生之义&#xff0c;在于追求&#xff0c;不在成败&#xff0c;勤通…

uniapp 安卓 Pc端真机浏览器调试

下载插件:真机模拟浏览器 1. 安装, 每次启用时使用usb 线连接电脑, 并且打开手机或者POS (调试设备)开发者模式, 比如我的是pos 机 则在系统设置中找到版本号,点击多次就会触发开发者模式 2.打开真机模拟软件,打开后会打开一个浏览器,如果想要模拟google的浏览器则 在浏览器地…

ZFNet论文详解

ZFNet CNN卷积网络的发展史 1. LetNet5(1998) 2. AlexNet(2012) 3. ZFNet(2013) 4. VGGNet(2014) 5. GoogLeNet(2014) 6. ResNet(2015) 7. DenseNet(2017) 8. EfficientNet(2019) 9. Vision Transformers(2020) 10. 自适应卷积网络(2021) 上面列出了发展到现在CNN的一些经典的…

基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 反向传播网络&#xff08;BP&#xff0c;多层感知器MLP&#xff09; 4.2 径向基函数网络&#xff08;RBF&#xff09; 4.3 卷积神经网络&#xff08;CNN&#xff09; 4.4 长短期记忆网…

成都青年AI人才崭露头角,知了汇智科技助力孵化营大放异彩

5月18日-19日&#xff0c;为期两天的成都国际商贸城青年&#xff08;大学生&#xff09;AI应用孵化营活动在热烈的氛围中圆满落幕。本次活动由成都国际商贸城、成都成商数字科技有限公司、成都知了汇智科技有限公司及成都电商职教集团联合举办&#xff0c;旨在为青年&#xff0…

深入浅出递归算法

文章目录 递归思想递归的题目1.汉诺塔问题问题分析代码展示 2.合并两个有序链表问题分析代码展示 3.反转链表问题分析代码展示 4.两两交换 链表中的节点问题分析代码展示 总结 递归思想 递归就是将一个很大的问题拆分成子问题&#xff0c;然后再将子问题继续拆分&#xff0c;拆…

力扣226. 翻转二叉树(DFS的两种思路)

Problem: 226. 翻转二叉树 文章目录 题目描述思路复杂度Code 题目描述 思路 涉及二叉树的递归解法时往往需要考虑两种思路&#xff1a; 1.在递归遍历时执行题目需要的具体要求&#xff1b; 2.将一个大问题分解为多个小子问题 具体到本体&#xff1a; 思路1&#xff1a;遍历 先…

前端请求超时截断,axios timeout设置未生效情况记录

问题描述 前端请求超时截断&#xff0c;axios timeout设置未生效情况记录 timeout设置方式&#xff1a; 表现&#xff08;前端超过5min报错500&#xff0c;直接访问接口超过5min能够正常响应&#xff09;&#xff1a; 问题原因 上面的配置设置时间为1000min&#xff0c;明显…

多项式重构的平滑和法线估计-------PCL

多项式重构的平滑和法线估计 /// <summary> /// 多项式重构的平滑和法线估计 /// </summary> /// <param name"cloud"></param> /// <returns>输出一个包含平滑后的点云数据以及相应法线信息的数据结构</returns> pcl::PointCl…

ROCm上情感分析:使用循环神经网络

15.2. 情感分析&#xff1a;使用循环神经网络 — 动手学深度学习 2.0.0 documentation (d2l.ai) 代码 import torch from torch import nn from d2l import torch as d2lbatch_size 64 train_iter, test_iter, vocab d2l.load_data_imdb(batch_size)class BiRNN(nn.Module):…

sqlserver的查询(三)

目录 10. group by(分组) 11. having(对分组后的信息过滤) 可能从这里开始&#xff0c;执行顺序越来越显得重要了&#xff01;&#xff01;&#xff01; 10. group by(分组) 这个查询相比前面会有一些困难&#xff1b; 格式&#xff1a;group by 字段的集合&#xff1b; 功…