微信小程序反编译/解包

微信小程序反编译/解包

环境与工具

操作系统: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

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4K高刷显示器 - 10大产品对比

4K高刷显示器 - 蚂蚁电竞 N27U 显示屏评测报告 一、产品品牌知名度 蚂蚁电竞&#xff0c;作为一家专注于电竞领域的品牌&#xff0c;近年来在市场上逐渐崭露头角。虽然相较于一些老牌显示器品牌&#xff0c;蚂蚁电竞的知名度还有待提高&#xff0c;但其在电竞领域的表现却不容…

秋招突击——算法打卡——5/24——无重复字符的最长字串

题目描述 实现代码 // 无重复字符的最长子串 int lengthOfLongestSubstring(string s) {int l 0,r 0;int res 0;unordered_map<char,int> temp;while(l < s.size()){temp[s.at(l)] l;for (r l 1; r < s.size() ; r) {if(temp.count(s.at(r))) break;else te…

漫画|基于SprinBoot+vue的漫画网站(源码+数据库+文档)

漫画网站 目录 基于SprinBootvue的漫画网站 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大…

【Linux学习】进程间通信 (1) —— 管道

下面是有关进程通信中管道的相关介绍&#xff0c;希望对你有所帮助&#xff01; 小海编程心语录-CSDN博客 1. 进程通信的基本概念 1.1 概念 进程间通信简称 IPC &#xff0c;指两个进程之间的通信。 IPC的方式通常有管道&#xff08;包括无名管道和命名管道&#xff09;、消息…

【Linux网络】端口及UDP

文章目录 1.再看四层2.端口号2.1引入linux端口号和进程pid的区别端口号是如何生成的传输层有了pid还设置端口号端口号划分 2.2问题2.3netstat 3.UDP协议3.0每学一个协议 都要讨论一下问题3.1UDP协议3.2谈udp/tcp实际上是在讨论什么&#xff1f; 1.再看四层 2.端口号 端口号(Po…

//TODO 注释的作用

// TODO 用来标记某处&#xff0c;表示该处含有待办事项&#xff08;尚未解决&#xff09;。其设计本意只是提醒开发者注意&#xff0c;除了代码高亮之外&#xff0c;还可以借助编辑器实现快速定位。 如何使用&#xff1f; 直接在双斜杠后面加 TODO 或者 todo 即可&#xff0c…

CVPR2022医疗图像-GBCNet网络:胆囊癌(GBC)超声(USG)图像检测模型

Surpassing the Human Accuracy:Detecting Gallbladder Cancer from USG Images with Curriculum Learning&#xff1a;超越人类的准确性:基于课程学习的USG图像检测胆囊癌 目录 一、背景与意义 二、介绍 三、网络框架 3.1 区域选择网络 3.2 MS-SoP分类器 3.3 多尺度块 …

抖音运营_抖音电商介绍

截止20年8月&#xff0c;抖音的日活跃数高达6亿。 20年6月&#xff0c;上线抖店 &#xff08;抖音官方电商&#xff09; 一 抖店的定位和特色 1 一站式经营 帮助商家进行 商品交易、店铺管理、客户服务 等全链路的生意经营 2 多渠道拓展 抖音、今日头条、西瓜、抖音火山版…

ASP+ACCESS基于WEB社区论坛设计与实现

摘要&#xff1a;系统主要实现BBS网站全部功能。采用目前应用最为广泛的ASP作为开发工具来开发此系统、以保证系统的稳定性。采用目前最为流行的网页制作工具Dreamweaver和目前最为流行的动画制作工具Flash MX。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发&…

卤菜销售|基于SSM+vue的智能卤菜销售平台的设计与实现(源码+数据库+文档)

智能卤菜销售平台 目录 基于SSM&#xff0b;vue的智能卤菜销售平台的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3用户功能模块 4商家功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

windows查看mysql的版本(三种方法)

方法一&#xff1a;在win r 打开 cmd&#xff0c;在cmd命令状态下&#xff1a;mysql --help 回车即可 方法二&#xff1a;在mysql客户端窗口状态下&#xff1a;输入status并回车即可 在计算机开始菜单搜索以上应用打开即可进入mysql客户端窗口。 方法三&#xff1a;在mys…

pikachu-Unsafe Filedownload

任意点击一个图片进行下载&#xff0c;发现下载的url。 http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filenamekb.png 构造payload&#xff1a; 即可下载 当前页面的源码&#xff0c;可以进行路径穿越来下载一些重要的配置文件来获取信息。 http://127.0.…

[AI Google] 10个即将到来的Android生态系统更新

新的体验带来了更强的防盗保护、手表电池寿命优化&#xff0c;以及对电视、汽车等的娱乐功能改进。 昨天&#xff0c;我们分享了Android如何以人工智能为核心重新构想智能手机。今天&#xff0c;我们推出了Android 15的第二个测试版&#xff0c;并分享了更多我们改进操作系统的…

Python导入Shapefile到PostGIS的常见问题和解决方案

导入Shapefile到PostGIS的常见问题和解决方案 先决条件&#xff1a; 已经拥有含有GDAL的python环境&#xff08;如果大家需要&#xff0c;我可以后面出一片文章 问题一&#xff1a;QGIS连接到PostGIS数据库失败 错误描述&#xff1a; Connection to server at &quo…

2024 CCF国际AIOps挑战赛·赛题与赛制解读

本文根据本届挑战赛程序委员会主席、中国科学院计算机网络信息中心副研究员裴昶华在2024 CCF国际AIOps挑战赛线下宣讲会上为《2024 CCF国际AIOps挑战赛赛题与赛制》的分享整理而成&#xff0c;全文分为挑战赛背景介绍、题目简介、流程说明和评分规则等部分&#xff0c;最后简要…

别对我动心短视频:成都鼎茂宏升文化传媒公司

别对我动心短视频&#xff1a;时代的爱情哲学与心理探索 在短视频的海洋里&#xff0c;"别对我动心"这样的标题&#xff0c;如同一颗石子投入平静的湖面&#xff0c;激起了层层涟漪。它不仅仅是对一段情感的拒绝&#xff0c;更是一种现代人情感态度的表达&#xff0…

14 vue学习:透传Attributes

Attributes 继承 “透传 attribute”指的是传递给一个组件&#xff0c;却没有被该组件声明为 [props]或 [emits]的 attribute 或者 v-on 事件监听器。最常见的例子就是 class、style 和 id。 当一个组件以单个元素为根作渲染时&#xff0c;透传的 attribute 会自动被添加到根元…

【全部更新完毕】2024长三角数学建模A题思路代码文章教学-“抢救”落水手机

文章摘要部分&#xff1a; “抢救”落水手机 摘要 文章主要探讨了如何科学地处理和搜索在水体中意外掉落的物品&#xff1a;华为 Mate 60 Pro手机和居民身份证。本文基于物理模型和动力学分析&#xff0c;为不同水体环境中的掉落物品提供了详尽的搜索策略和打捞建议。 本文…

[安洵杯 2019]crackMe

直接就退出程序了 找到关键函数了&#xff0c;好像用到了 hook 还有一个 嘿嘿&#xff0c;看着就是像 base64 只是 补‘’改成了‘ &#xff01; ’ 交叉引用啊&#xff0c;翻到一个应该是最后比较函数 1UTAOIkpyOSWGv/mOYFY4R!! 那一坨对 a1数组的操作没看懂 先总结一下就是…

SpringBoot搭建Eureka注册中心

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 1、Spring-Cloud Euraka介绍 Spring-Cloud Euraka是Spring Cloud集合中一…