微信小程序反编译报SyntaxError: Unexpected token ‘}‘ 不完美的解决方法

news2024/12/24 8:43:01

文章目录

  • 1.反编译报错
  • 2.分析已反编译出来的文件
  • 3.错误原因
  • 4.没有完美解决的方法
  • 5.小笔记
  • 6.相关链接

1.反编译报错

最近在搞小程序,参考Csdn博客的微信小程序反编译Blog,一步一步操作,获取到了.wxapkg,在wxappUnpacker目录下执行cmd命令:node wuWxapkg.js (小程序appid).wxapkg,却报了如下的错
在这里插入图片描述
报Unexpeced token '}'错误,但是能反编译一部分文件,用微信开发者工具打开反编译的部分
在这里插入图片描述

2.分析已反编译出来的文件

  1. 控制台报app.json未找到的错误
  2. 没有反编译出page的js、wxss、wxml、json文件
  3. 反编译出来的是html不是微信小程序的wxml页面文件
  4. 不知道appservice.js文件是什么
  5. 不知道page-frame.html文件是什么
  6. 不知道app-config.json文件是什么
    index.html文件打开如下
    在这里插入图片描述
    appservice.js文件打开如下
    在这里插入图片描述
    page-frame.html文件打开如下
    在这里插入图片描述

完全看不懂,然后在网上搜索到了这个Blog,说清楚了各个文件什么意思,以及怎么解决
微信小程序“反编译”实战(二):源码还原
从这篇Blog中了解了appservice.js、page-frame.html、app-config.json是什么意思,并且得出了我此次反编译小程序是失败的。

3.错误原因

个人推出是因为wxappUnpacker开源包有点旧了,而微信小程序更新了,导致执行反编译微信的wxss样式文件与wxml文件失败报异常而导致只能反编译一部分,异常抛出的后半部分反编译代码没执行,所以存在index.appservice.js、app-config.json待反编译的文件。

4.没有完美解决的方法

我的解决方法是:
使用wxappUnpacker开源包提供的反编译单个js、config命令把js、 page.json 和 app.json得到,而忽略wxss样式与wxml文件。
在cmd中执行node wuConfig.js、node wuJs.js命令顺利:
在这里插入图片描述在这里插入图片描述
而执行node wuWxml.js 与node wuWxss.js命令均失败:
在这里插入图片描述
最后反编译的项目结构
在这里插入图片描述
得到了,page(index).js、page(index).json,app.json文件,但是wxml与wxss文件无法反编译
但是得到了最重要的js文件,就差不多可以得到小程序最主要的功能是如何实现的了。

如果小程序简单,可以参考一下没有完全反编译出来的文件,自己建一个空项目,再导入js,自己写写wxml与wxss就可以完整运行原小程序,但是如果比较复杂或者大的小程序就有点难这样做。

希望有大佬路过提一下完美可行的解决方案,谢谢以及谢谢观看

5.小笔记

来源微信小程序“反编译”实战(二):源码还原:
1.app-config.json:
小程序工程主要包括工具配置 project.config.json,全局配置 app.json 以及页面配置 page.json 三类 JSON 配置文件。其中:

project.config.json 主要用于对开发者工具进行个性化配置以及包括小程序项目工程的一些基础配置,所以它不会被“编译”到 .wxapkg 包中;

app.json 是对当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等;

page.json 用于对每一个页面的窗口表现进行配置,页面中配置项会覆盖 app.json 的 window 中相同的配置项。

因此“编译”后的文件 app-config.json 其实就是 app.json 和各个页面的配置文件的汇总

2.app-service.js
在小程序项目中 JS 文件负责交互逻辑,主要包括 app.js,每个页面的 page.js,开发者自定义的 JS 文件和引入的第三方 JS 文件,在“编译”后所有这些 JS 文件都会被汇总到 app-service.js 文件中

3.page-frame.html
在小程序中使用 WXML 文件描述页面的结构,WXSS 文件描述页面的样式。工程中有一个 app.wxss 文件用于定义一些全局的样式,会自动被 import 到各个页面中;另外每个页面也都分别包含 page.wxml 和 page.wxss 用于描述其页面的结构和样式;同时,我们也会自定义一些公共的 xxxCommon.wxss 样式文件和公共的 xxxTemplate.wxml 模板文件供一些页面复用,一般在各自页面的 page.wxss 和 page.wxml 中去 import。

当“编译”小程序后,所有的 .wxml 文件和 app.wxss 及公共 xxxCommon.wxss 样式文件的将被整合到 page-frame.html 文件中,而每个页面的 page.wxss 样式文件,将分别单独在各自的路径下生成一个 page.html 文件

4.wxappUnpacker开源包提供的命令
node wuConfig.js <path/to/app-config.json> : 将 app-config.json 中的内容拆分成各个页面所对应的 page.json 和 app.json;

node wuJs.js <path/to/app-service.js> : 将 app-service.js 拆分成一系列原先独立的 JS 文件,并使用 Uglify-ES 美化工具尽可能将代码还原为“编译”前的内容;

node wuWxml.js [-m] <path/to/page-frame.html> : 从 page-frame.html 中提取并还原各页面的 .wxml 和 app.wxss 及公共 .wxss 样式文件;

node wuWxss.js <path/to/unpack_dir> : 该命令参数为 .wxapkg 解包后目录,它将分析并从各个 page.html 中提取还原各页面的 page.wxss 样式文件;

6.相关链接

个人认为干货比较高的微信小程序反编译,均来自CSDN-BLOG
反编译小程序遇到的问题以及如何反编译
小程序反编译2021 亲测可用

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

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

相关文章

Vue中如何进行分布式错误日志收集与监控

Vue中如何进行分布式错误日志收集与监控 随着前端界面的复杂化&#xff0c;前端错误日志的收集和监控也成为了一个重要的问题。在分布式应用中&#xff0c;需要跨多个前端应用和后端服务收集和监控错误日志。本文将介绍如何在 Vue 中使用 Sentry 进行分布式错误日志收集和监控…

应急响应:系统入侵排查指南

目录 系统基本信息排查 Windows系统排查 Linux系统排查 CPU信息 操作系统信息 载入模块排查 用户排查 Windows系统用户排查 排查所有账户 Linux用户排查 root账户排查 查看所有可登录账户 查看用户错误的登录信息 查看所有用户最后登录信息 排查空口令账户 启…

从开发到部署:一站式指南创建个性化 Slack App 问答机器人

从开发到部署&#xff1a;一站式指南创建个性化 Slack App 问答机器人 01 简介 做这个教程是因为看别人拿免费的割韭菜很不爽&#xff0c;所以准备做个教程来教大家如何搭建一个问答机器人 内核其实就是利用了slack提供的官方api&#xff0c;自己创建app然后获取艾特信息&#…

Python3数据分析与挖掘建模(15)特征选择与特征变换

1 特征选择 1. 1 概述 特征选择是一种剔除与标注不相关或冗余的特征的方法&#xff0c;以减少特征集的维度和复杂性&#xff0c;并提高模型的性能和解释能力。特征选择的目标是选择那些对目标变量有预测能力且与其他特征不冗余的特征。 特征选择的方法可以分为三类&#xff…

【国产虚拟仪器】基于ARM+FPGA+8通道高速AD代替美国国家仪器的电能质量分析仪设计(一)NI方案介绍

一、背景&#xff1a;基于美国国家仪器的采集方案介绍 本文设计的电能质量分析仪数据分析系统以NI公司的National Instruments LabVIEW2018作为软件开发平台&#xff0c;结合硬件平台&#xff0c;实现数据的采集、波形显示和数据 分析。硬件电路的主要作用是对电网信号进行降幅…

聚焦产品研发,极米科技创新能力领跑行业

近年来&#xff0c;在消费升级、线上渠道迅速放量的背景下&#xff0c;家用智能投影已成为中国投影仪的第一大细分市场。有数据显示&#xff0c;2017年以来&#xff0c;中国消费级投影机出货量持续提升。根据第三方机构IDC&#xff08;国际数据公司&#xff09;统计&#xff0c…

Matter实战系列-----3.Matter Light和Switch配网和控制实验

专有名词&#xff1a; OT-RCP&#xff1a; Open Thread Radio Co-Processor 。 Thread 无线协处理器 OTBR&#xff1a; Open Thread Board Router 。 Thread 边界路由器 chip-tool&#xff1a; Linux 应用程序。用于 Matter 协议控制 ot-ctl&#xff1a; Thread 网络控…

爬虫一定要用代理ip吗?

使用代理IP可以帮助爬虫隐藏真实IP地址&#xff0c;防止被网站封禁或限制访问。此外&#xff0c;使用代理IP还可以帮助爬虫绕过一些地区或国家的访问限制&#xff0c;获取更多的数据。因此&#xff0c;对于一些需要频繁爬取数据的爬虫&#xff0c;使用代理IP是一个不错的选择。…

2023如何选择适合自己的浪涌保护器

浪涌保护器对许多人来说并不熟悉&#xff0c;但是如果您担心您拥有的电子设备和家用电器的安全性并保护它们免受电涌的影响&#xff0c;那么您必须了解电涌保护器以及它们的工作原理。 在没有电涌保护器的情况下直接使用昂贵的电子家用电器是危险的&#xff0c;即使发生电涌的…

【taro react】---- 解决H5接入uni-app版本的IM

1. 问题 由于项目开发比较紧张&#xff0c;腾讯 IM 的接入就使用了 TUIKit 含UI集成方案&#xff0c;遇到的问题&#xff0c;uni-app的UI本来就是一个单独的项目&#xff0c;需要集成到现有的 Taro React 中&#xff0c;就只能作为一个独立的项目&#xff0c;不跳转时不影响原有…

原型模式(七)

不管怎么样&#xff0c;都要继续充满着希望 上一章简单介绍了抽象工厂模式(六), 如果没有看过,请观看上一章 一. 原型模式 引用 菜鸟教程里面的原型模式介绍: https://www.runoob.com/design-pattern/prototype-pattern.html 原型模式&#xff08;Prototype Pattern&#xf…

为什么Potplayer是值得一用的视频播放器?

名人说&#xff1a;往者不可谏&#xff0c;来者犹可追。——语出《论语微子篇》 Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; o(‐&#xff3e;▽&#xff3e;‐)o很高兴你打开了这篇博客&#xff0c;跟着步骤一步步尝试安装吧。✧ 目录…

创新指南|企业创新可以3步做对深科技战略

企业在制定科技创新战略时如何采用深科技策略&#xff1f;那些涉及先进计算和科学技术的创新&#xff0c;如人工智能、区块链和量子计算等&#xff0c;企业需要意识到深科技的潜力和影响&#xff0c;通过采取三步法参与深科技创新生态&#xff0c;企业可以保持竞争力&#xff0…

docker 容器安全注意与https

隔离与共享&#xff1a; 虚拟机通过添加hypervisor层&#xff08;虚拟化中间层&#xff09;&#xff0c;等虚拟出网卡&#xff0c;内存&#xff0c;cpu硬件&#xff0c;再在其上建立虚拟机&#xff0c;每个虚拟机都有自己的系统内核。docer通过隔离的方式&#xff0c;将文件系…

【工具】Ubuntu18非root用户安装CUDAPyTorch

文章目录 CUDA查看GPU驱动支持的最高CUDA版本CUDA download指定路径安装CUDA cuDNN验证cuda是否安装成功以及版本信息 pytorch验证pytorch是否安装成功&GPU是否可用MMDetection3D CUDA 查看GPU驱动支持的最高CUDA版本 运行命令&#xff1a;nvidia-smi CUDA Version: 11.…

延时函数:普通延时,硬件定时器延时,系统定时器延时

一、普通延时函数 此种延时是基于让MCU做一些无意义的循环操作来打发时间&#xff0c;优点是简单易懂&#xff0c;缺点是会占用MCU的处理资源且精度较低&#xff0c;主要用于程序简单、无严格时间要求的场景中。 //微秒级的延时 void delay_us(uint32_t delay_us) { volat…

C语言实战之、<<、>>

1、&&#xff08;按位与&#xff09; 按位与运算将两个运算分量的对应位按位遵照以下规则进行计算&#xff1a; 0 & 0 0, 0 & 1 0, 1 & 0 0, 1 & 1 1。 即同为 1 的位&#xff0c;结果为 1&#xff0c;否则结果为 0。 例如&#xff0c;设3的内部表示为…

6--Gradle进阶 - 项目的生命周期

6--Gradle进阶 - 项目的生命周期 项目的生命周期 Gradle 项目的生命周期分为三大阶段: Initialization -> Configuration -> Execution. 每个阶段都有自己的职责,具体如下图所示: Initialization 阶段主要目的是初始化构建, 它又分为两个子过程,一个是执行 Init Script,另…

转载:卷积神经网络结构组成与解释

原文链接&#xff1a;卷积神经网络结构组成与解释 卷积神经网络是以卷积层为主的深度网路结构&#xff0c;网络结构包括有卷积层、激活层、BN层、池化层、FC层、损失层等。卷积操作是对图像和滤波矩阵做内积&#xff08;元素相乘再求和&#xff09;的操作。 1. 卷积层 常见的…