头图

反编译微信小程序获取小程序前端源码wxapkg

研究目的

研究反编译的原因就是我自己辛苦了半个月写的小程序,忘记备份放在桌面,心急体验Win11系统 重装系统忘记备份源码,后悔莫及。 后来网上找了反编译的教程,反编译已经上线了的小程序 于是自己尝试了一下,真的可以,源码可算找回来了! 于是发帖分享一下反编译的流程。

准备工作

1、微信电脑版(建议最新版)
2、Node.js环境
3、小程序程序包解密工具
4、反编译脚本

小程序程序包解密工具和反编译脚本:https://king.lanzoui.com/ipSefr888ri

操作步骤

1、安装Node.js环境
Node.js下载:https://nodejs.org/zh-cn/

2、登录微信电脑版,运行你想要反编译的小程序,每个页面都点一下,确保所有页面的加载。完成后,找到你的微信文件储存目录。

找到Applet这个目录,里面找到你刚才打开的小程序的appid就是对应的加密程序包了。

有网友反馈进入Applet目录无法看到wxapkg的包。实际上是你通过微信电脑版的打开文件夹,是跳到了当前微信的文件目录,而我这里指的Applet目录是在 WeChat Files\Applet\ 这个目录下的,所以你点击 打开文件夹 后,还需返回上一级,再点击 Applet 进入找到你要反编译的小程序的Appid。

image.png

如图,真正的Applet目录。

image.png

3、解密。打开解密工具,选择刚才找到的加密包目录,导入解密工具进行解密,解密后就得到wxapkg程序包了。

4、将wxapkg程序包复制到反编译脚本目录wxappUnpacker-master里面,用cmd工具cd到wxappUnpacker-master目录,依次安装以下依赖。

npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify

所有依赖安装完,即可开始反编译。

5、反编译。运行反编译命令,既node wuWxapkg.js 解密程序包。

node wuWxapkg.js wxe1577ebe280af504.wxapkg

6、反编译成功就会在同一目录下生成当前反编译的小程序appid的目录。

反编译后的wxml、wxss、json基本都是跟之前你写的一模一样,但是js会有少量地方被其他字符串替代了,例如true用!1,false用!0等替代了,也有一些换行被缩起来了,不便于阅读。

这是因为小程序的源码经过了打包工具的编译,替换掉了一些字符来达到代码压缩的目的,你可以修改也可以保持原样,不影响,但是基本的结构都在。

本文更新时间:2023-03-29

作者

TANKING
学习交流:sansure2016

WeChat:sansure2016

4.5k 声望
323 粉丝
0 条评论
推荐阅读
黑苹果macOS Catalina 10.15.7升级为Big Sur(i5 3470+XSB75M-PK+HD 7750)
HD 7700HD 7730HD 7750HD 7770HD 7790HD 7850HD 7870HD 7950HD 7970HD 7990

TANKING1阅读 851

封面图
ESlint + Stylelint + VSCode自动格式化代码(2023)
安装插件 ESLint,然后 File -> Preference-> Settings(如果装了中文插件包应该是 文件 -> 选项 -> 设置),搜索 eslint,点击 Edit in setting.json

谭光志34阅读 20.7k评论 9

安全地在前后端之间传输数据 - 「3」真的安全吗?
在「2」注册和登录示例中,我们通过非对称加密算法实现了浏览器和 Web 服务器之间的安全传输。看起来一切都很美好,但是危险就在哪里,有些人发现了,有些人嗅到了,更多人却浑然不知。就像是给门上了把好锁,还...

边城31阅读 7.2k评论 5

封面图
涨姿势了,有意思的气泡 Loading 效果
今日,群友提问,如何实现这么一个 Loading 效果:这个确实有点意思,但是这是 CSS 能够完成的?没错,这个效果中的核心气泡效果,其实借助 CSS 中的滤镜,能够比较轻松的实现,就是所需的元素可能多点。参考我们...

chokcoco21阅读 2.1k评论 3

在前端使用 JS 进行分类汇总
最近遇到一些同学在问 JS 中进行数据统计的问题。虽然数据统计一般会在数据库中进行,但是后端遇到需要使用程序来进行统计的情况也非常多。.NET 就为了对内存数据和数据库数据进行统一地数据处理,发明了 LINQ (L...

边城17阅读 2k

封面图
【已结束】SegmentFault 思否写作挑战赛!
SegmentFault 思否写作挑战赛 是思否社区新上线的系列社区活动在 2 月 8 日 正式面向社区所有用户开启;挑战赛中包含多个可供作者选择的热门技术方向,根据挑战难度分为多个等级,快来参与挑战,向更好的自己前进!

SegmentFault思否20阅读 5.6k评论 10

封面图
过滤/筛选树节点
又是树,是我跟树杠上了吗?—— 不,是树的问题太多了!🔗 相关文章推荐:使用递归遍历并转换树形数据(以 TypeScript 为例)从列表生成树 (JavaScript/TypeScript) 过滤和筛选是一个意思,都是 filter。对于列表来...

边城18阅读 7.7k评论 3

封面图

WeChat:sansure2016

4.5k 声望
323 粉丝
宣传栏