微信小程序源码反编译(wxss样式无法恢复的问题)

news2024/12/23 5:16:08

背景:从微信小程序源码上线后,网上一直有大神写程序来反编微信小程序的源码,不过现在来看基本都不能用了,有的能用也不能获取样式wxss文件,经过我的不懈努力,找到一些办法,接下来我会一步步讲。

反编译步骤及工具:

工具:夜神模拟器、node环境、反编工具

1、开启夜神,在夜神中下载微信、RE文件管理器并安装

2、打开RE文件管理器,设置里面开启root权限

3、登录微信、打开你要反编的微信小程序,开启即可,如果是带分包的小程序最好都点点,把分包也加载回来(备注:这一步会很卡,我也是登录了好几次才登录上微信、小程序更是开了五次才打开,期间不断重启,恶心人。)

4、使用RE浏览器找到小程序.wxapkg文件  具体路径在 /data/data/com.tencent.mm/MicroMsg/一串32位的16进制字符串文件夹/appbrand/pkg/

5、压缩成zip文件,通过微信发给朋友,至此电脑下包工作结束(注意:一定要等发送成功再下机)

6、反编译脚本链接:https://pan.baidu.com/s/1fnMRnn2Jcq2RPv2waOmeNA      提取码:bgyz(网友提供,现在git上很多都没有了)

7、解压已下载好的wxappUnpacker,然后进入该文件夹,复制该文件夹的地址,然后以管理员身份打开cmd窗口(直接按win+R打开运行窗口,然后输入cmd,按ctrl+shift+enter),然后跳转到wxappUnpacker内,如下所示:

注意一定要管理员身份运行cmd窗口,否则后面可能造成命令执行出错。
然后开始安装依赖,按顺序执行以下命令:

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

8、完成后在wuWxapkg.js同级目录内运行如下命令进行反编译小程序包;

输入node wuWxapkg.js 后,将上面解包后的.wxapkg文件拖放到命令窗口可以自动识别路径
最终的命令例如下:

node wuWxapkg.js  E:\Project\wxappUnpacker\testpkg\_1174665696_27.wxapkg

此时,报错:  Unexpected end of input(查资料说是因为微信更新导致的,很久了,网上的工具都是这样)

重点来了:此时得到的文件,只是没有css样式,其他都在,不过我们不能止步于此
获取css样式:
1、找到源码中 page-frame.html 文件,将其拖拽到浏览器中,并打开F12调试

2、vscode中搜索 __wxAppCode__

 

3、在调试工具中执行:

__wxAppCode__["pages/index/index.wxss"]("",{deviceWidth:375},document.body)
此时页面上就会输出以 375 iPhone6尺寸的css样式,因为用小程序用的rpx是根据设备宽度转换的。

4、把样式粘回指定的文件里,即可(注意:第三步的路径就是粘回去的文件路径、文件要自己创建, app.wxss只能从里面自己复制出了)

5、在微信小程序开发工具中,大家获取的wxss样式文件,右键“格式化文档”,即可格式化样式。

自此完整获取了微信小程序源码

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

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

相关文章

HarmonyOS课程体验官招募(第四期),寻找乐于分享,精益求精的伙伴

华为开发者联盟HarmonyOS课程体验官(第四期)活动,开始招募啦! 如果你精益求精、乐于分享;如果你愿意为学堂课程优化改进出谋划策,那就快来加入我们吧!学堂期待与你共同成长、一起进步&#xff0…

大模型开发(八):基于思维链(CoT)的进阶提示工程

全文共8000余字,预计阅读时间约16~27分钟 | 满满干货(附复现代码),建议收藏! 本文目标:介绍提示工程基础类方法、思维链提示方法和LtM的提示方法,并复现解决论文中四个经典推理问题。 代码下载…

JimuReport积木报表 v1.5.9版本发布—免费的可视化报表

项目介绍 一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报…

中睿天下与北京理工大学网络攻防溯源联合实验室揭牌仪式成功举行

7月17日,中睿天下和北理工共建网络攻防溯源联合实验室揭牌仪式暨“网络安全攻防对抗实战”暑期课程开幕式在北京理工大学举行。中睿天下联合创始人魏海宇、创新实验室负责人朱鲲鹏、北京理工大学网络空间安全学院副院长嵩天、副院长张延军、副院长刘莲及部分师生代表…

c++qt 学习笔记,与注意事项

目录 1 构建一个简单的应用 1.1 创建工程 1.2 widget.h文件修改 1.3 widget.cpp文件修改 1.4 生成可执行exe文件 2 内置部件总结 2.1 输入部件类 2.1.1 普通按钮QPushButton示例 2.1.2 工具按钮QToolButton 2.1.3 单选按钮QRadioButton 2.1.4 复选按钮 2.1.5 con…

Unity - Stencil Test 开关,无法通过脚本或是 shader lab 开关来控制

查看过 shader lab 文档: ShaderLab command: Stencil,没有看到 stencil test 关闭的功能,我真的无语。。。 只能开,不能关,意思一个 shader lab 一旦编写了 stencil { } 的内容,就必须开启。。。 好 low 的设计 在网…

【C语言】深剖数据在内存中的存储

👦个人主页:Weraphael ✍🏻作者简介:目前正在回炉重造C语言(2023暑假) ✈️专栏:【C语言航路】 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你…

密码学学习笔记(十六 ):Schnorr签名算法

交互式零知识证明 零知识证明(ZKP)就是不会将证据泄露给验证者的知识证明。Schnorr身份认证识别协议是一个交互式ZKP,它满足了完备性、可靠性、零知识性。所谓的交互式ZKP方案通常包含3个步骤(承诺、挑战和证明),在文献中通常被称…

传奇新手小白架设单机给玩家充值元宝教程

阿杰今天和大家说说架设的单机如何给玩家和给自已充值元宝的教程 相信有很多玩家都架设过单机吧,架设容易,但是还有一些搞不明白,就是版本里面需 要充值点和积分回馈点才能领取的,那么这些怎么设置呢?今天就教大家两种…

【Express.js】evp-express-cli

evp-express-cli evp-express-cli 是笔者结合自己的实践经验编写的一款 express 手脚架,以一种比较合适的流程构建的 express 架构。 文档 安装用法 命令新建项目运行模板 验证数据库RedisAuthRabbitMQSocketIONacos 开发工具 BabelEsintJestPkgPM2 资源配置日志异…

【Docker】详解docker安装及使用

详解docker安装及使用 1. 安装docker2. Docker镜像操作3. Docker容器操作4.知识点总结4.1 docker镜像操作4.2 docker容器操作4.3 docker run启动过程 参见docker基础知识点详解 1. 安装docker 目前 Docker 只能支持 64 位系统。 systemctl stop firewalld.service setenforce…

Docker 应用容器引擎 (一)

Docker 应用容器引擎 Docker是什么 是一个开源的应用容器引擎,基于GO语言开发并遵循了apache2.0协议开源 是在linux容器里运行应用的开源工具 是一种轻量级的“虚拟机” Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的…

NOTA WL12,新型双功能整合剂,正电子发射断层扫描 (PET) 显像剂

(文章资料汇总来源于:陕西新研博美生物科技有限公司小编MISSwu)​ NOTA-WL12试剂 | 基础知识概述(部分) 英文名称:NOTA-WL12 CAS号:N/A 分子式:N/A 分子量:N/A 规格标准…

【Linux】Docker 基本管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Docker 基本管理 Docker 概述Docker 核心概念Docker 安装部署Docker 镜像操作Docker 容器操作 Docker 概述 Docker是一个开源的应用容器引擎,基于go语言开发并遵…

如何在Windows 10中启用或禁用缩略图预览

文件资源管理器可以在 Windows 10 中显示文件和文件夹的缩略图或图标。 本教程将向你展示如何在文件资源管理器中为你的帐户、所有用户或Windows 10 中的特定用户启用或禁用缩略图预览。 缩略图预览仅在打开并且选择了中等图标、大图标或超大图标文件夹视图布局时显示。 如果缩…

【T1】T1飞跃版红字反冲,提示单据已生成了凭证,不能红冲。但是联查凭证不存在。

【问题描述】 T1飞跃专业版,在经营历程中操作【红字反冲】的时候, 提示:单据已生成了凭证,不能红冲。 但是选中单据,点击联查凭证的时候,又提示【单据没有凭证】。 【解决方法】 针对账套库执行下述语句&…

若依vue -【 33 ~ 】

33 登录日志 系统管理 > 日志管理 > 登录日志 1 应用场景 统计用户的活跃度用户错误输入密码多少次 2 后台实现 (1)SysLoginController#login:登录 /*** 登录方法* * param loginBody 登录信息* return 结果*/PostMapping("…

(七)「消息队列」之 RabbitMQ 发布者确认(使用 .NET 客户端)

发布者确认(Publisher Confirms) 发布者确认是一个 RabbitMQ 扩展,用于实现可靠的发布。当在通道上启用发布者确认时,客户端发布的消息将由代理异步确认,这意味着它们已在服务器端得到处理。 0、引言 先决条件 本教程…

Spring、SpringBoot、SpringCloud、SpringCloud Alibaba、Elasticsearch版本对应,附下载地址

1、GitHub Alibaba 发布SpringCloud Alibaba和SpringCloud 、SpringBoot版本 Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot2022.0.0.0-RC2Spring Cloud 2022.0.03.02022.0.0.0-RC1Spring Cloud 2022.0.03.0.02021.0.5.0*Spring Cloud 2021.0.52.6.132021.0.4…

Linux查看某进程所部署的目录路径

1.首先查看系统中正在跑的进程都有什么 ps -ef 2.然后通过抓取你要看的进程名,比如哪些服务 ps -ef | grep xxxxx(服务名) Linux在启动一个进程时,系统会在 /proc 下创建一个以PID命名的文件夹; 在该文件夹下会有我们的进程的信息&#…