反编译小程序详细教程,处理各种异常报错

这篇具有很好参考价值的文章主要介绍了反编译小程序详细教程,处理各种异常报错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章目录
一、准备工作
(一)安装Nodejs
(二)解密和逆向工具
二、小程序缓存文件解密
(一)定位小程序缓存路径
(二)源码解密
(三)源码反编译
三、小结
四、异常处理
1.TypeError: subPackage.pages is not iterable 异常
2.function(env,dd,global){$gwxc=0;var root={“tag”:“wx-page”};root.children=[] 异常
3.SyntaxError: Unexpected token ‘}‘ 异常处理
4. Error: This application has not registered any plugins yet. 异常处理(requirePlugin)
5. Bad attr data-event-params with message 异常处理
五、新版本反编译软件对比
一、准备工作
(一)安装Nodejs
Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境,通常是运行在服务端的 JavaScript。本文需要nodejs的环境提供npm工具来安装相关依赖,因此需要首先安装nodejs。
Node.js 官方下载地址:
https://nodejs.org/zh-cn/download/
之后根据自己使用的操作系统选择相应的版本即可,这里我选择windows版:

设置好安装路径后一路点击next即可。
之后在cmd中输入:

node -v

反编译小程序,反编译,小程序,异常处理

出现版本信息即表示安装成功。
注意:在执行例如npm install xxx -g等命令全局安装的时候,默认会将模块安装在C:\Users\用户名\AppData\Roaming路径下的npm和npm_cache中,不方便管理且占用C盘空间,所以这里我参考了别人的配置,自定义的全局模块安装目录,在node.js安装目录下新建两个文件夹 node_global和node_cache。
然后在cmd中执行以下命令(注意前两条命令改成你们自己的路径):

设置镜像源为淘宝npm镜像,可提高下载速度

npm config set registry=https://registry.npm.taobao.org

本文只是为了使用npm来安装东西,实际上到这里就可以结束了。如果需要更多的功能,则后续还需要配置环境变量,请参考其他文章,本文不过多涉及。
这里顺便提一下,如果需要进行版本相关的操作,请参考以下命令:

命令 说明

nvm install 14.15.5 安装指定的版本的nodejs
nvm use 10.5.0  使用指定版本的nodejs
nvm list	查看已经安装的版本
nvm list installed	查看已经安装的版本
nvm list available	查看网络可以安装的版本
nvm arch	查看当前系统的位数和当前nodejs的位数
nvm install [arch]	安装制定版本的node 并且可以指定平台 version 版本号 arch 平台
nvm on	打开nodejs版本控制
nvm off	关闭nodejs版本控制
nvm proxy [url]	查看和设置代理
nvm node_mirror [url]	设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/
nvm npm_mirror [url]	设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是:https://github.com/npm/npm/archive/.
nvm uninstall	卸载制定的版本
nvm use [version] [arch]	切换制定的node版本和位数
nvm root [path]	设置和查看root路径
nvm version	查看当前的版本

(二)解密和逆向工具
在获得小程序的缓存文件之后,需要先使用解密工具进行一轮解密,之后才能进行逆向。
解密工具下载地址:(G众号:程序员吴同学,回复:反编译教程 领取)

注:以上地址若失效,可及时私信我。

三、小程序缓存文件解密
(一)定位小程序缓存路径
首先确定小程序的缓存目录,在微信上打开设置,然后找到文件管理:

点击打开文件夹,打开Applet文件夹:

这里面即存储了小程序的本地缓存文件:

(二)源码解密
接着打开一个小程序,这里不便透露具体用的是哪个小程序,大家可以自行去寻找感兴趣的小程序玩一下。
首先打开目标小程序,然后多点一些页面,让小程序在本地产生缓存文件,之后查看本地文件夹,会看到产生了一个文件夹,通过文件夹创建的时间可以判断出哪个文件夹里的数据是属于刚访问小程序的缓存目录:

那么之后,我们需要先对这些缓存数据进行一次解密,方法很简单,打开解密工具:

然后点击’选择加密小程序包’,并选中自己刚才定位出来的小程序的缓存目录。如图所示,已经解密成功:

解密后的文件在解密程序同目录下的wxpack文件夹中:
反编译小程序,反编译,小程序,异常处理

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

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

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

我这里因为已经有安装过了,所以和你们的会不太一样。执行以后不要出现error的报错信息即可。
然后根据前面解密的文件构造命令如下:

node ./wuWxapkg.js E:\WeiXinXiaoChengXu\wxpack\wx3b25611579a1b7ec.wxapkg 

这条命令的格式是:

node ./wuWxapkg.js 主包路径

另外就是分包的的反编译 指令:

node ./wuWxapkg.js 分包路径 -s=主包路径

有时候我们解密后得到的是主包后的分包(具体为什么我也不清楚,看情况),那么这时候就可以很方便的用到-s参数来指定存放的路径。
现在我们将根据第一种命令格式构造的命令在cmd中执行;

此时可以看到已经生成了一个文件夹,当前内容如下:
反编译小程序,反编译,小程序,异常处理

此时就可以自由导入到微信开发者工具中进行学习观摩了

三、小结
本文分享了从微信小程序本地缓存文件中反编译获得源码的方法,其中安装依赖时需要用到npm,而npm不需要单独安装,因为在安装 Node 的时候,会连带一起安装 npm。因此我们需要安装一个nodejs,之后使用解密和反编译工具按照先解密后反编译的步骤即可获得小程序的源码,不足之处敬请谅解。

四、异常总结处理

1.TypeError: subPackage.pages is not iterable 异常

 for (let page of subPackage.pages) {
^

TypeError: subPackage.pages is not iterable

这个异常其实就是简单的subPackage参数为空导致出现的异常,只需要简单修改为下面内容即可(G众号领取完整程序:程序员吴同学)(回复:反编译教程,获取解决本问题源码文件)

if(subPackage.pages){
     for (let page of subPackage.pages) {
     let items = page.replace(root, '');
     newPages.push(items);
     let subIndex = pages.indexOf(root + items);
     if (subIndex !== -1) {
         pages.splice(subIndex, 1);
     }
 }
 }

2.function(env,dd,global){$gwxc=0;var root={“tag”:“wx-page”};root.children=[] 异常
这个原因是因为现目前网上大多的wxappUnpacker-master 包都已经是旧的了,新开发出来的小程序或者升级后的小程序使用旧版本的wxappUnpacker-master 都是难以进行解析了的,主要错误原因就在于,解析page-frame.html文件时候,提取出来的内容导入到VM.run函数中不是一个合法的JavaScript代码格式的内容,导致出现的异常,G众号私信了解处理方式(G众号:程序员吴同学) (解析不了的包,发我,我来处理)

3.SyntaxError: Unexpected token ‘}‘ 异常处理
出这个异常其实和上面第二个异常的原因一模一样,都是截取出来的字符串传入到JavaScript中不是一段合法的代码导致的,这种如果需要协助处理,可以私信喔(G众号:程序员吴同学)(解析不了的包,发我,我来处理)

4.Error: This application has not registered any plugins yet. 异常处理
这个就是由于编译下来的小程序存在加载插件的原因,现如今你使用的APPID没有申请这个插件,导致出现的异常,简单做法,直接找到对应的插件,小程序后台进行申请;又或者直接删除加载插件的代码即可;(requirePlugin)

5.Bad attr data-event-params with message 异常处理
这个错误一般由于data-event-params参数设置的格式不符合wxml文件中的格式类似如下:

<view data-event-params="{{index:index}}" wx:for-item="icon" wx:key="index">

主要就是{{index:index}}这个格式是wxml中不支持的格式,修改为{{index}}即可处理

6.Unexpected token }异常报错处理(return 内容为空)
更多异常处理方式持续更新中

五、新版本反编译软件对比
新开发反编译程序,效果如下,解决上面所有的问题,需要可以联系有偿提供(视频教程)
优点:
1.支持主包分包支持一键反编译(多少个分包都可以喔);
2.wxappUnpacker反编译出异常的都可以一键反编译;
3.操作简单,不需要一个一个得解包再反编译包;
视频教程文章来源地址https://www.toymoban.com/news/detail-716463.html

到了这里,关于反编译小程序详细教程,处理各种异常报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RUST Rover 条件编译 异常处理

    会报异常 error: failed to parse manifest at C:UserstopmaRustroverProjectsuntitled2Cargo.toml 网上说明 这样处理 https://course.rs/cargo/reference/features/intro.html RUST 圣经里描述

    2024年04月09日
    浏览(26)
  • OpenHarmony 4.0 Release 编译异常处理

    编译环境:Ubuntu 20.04 OpenHarmony 软件版本:4.0 Release 设备平台:rk3568 参考官网步骤: OpenHarmony 4.0 Release 源码获取 参考官网构建步骤: v4.0 Release 编译构建 如果上述步骤一切顺利,编译通过,build log如下: 下拉代码执行报错 unable to resolve “fork_flow”\\\" 表明repo工具无法解析名为

    2024年02月05日
    浏览(41)
  • 记录阿里云服务配置 https 地址,各种报错问题处理

            这几天公司配置电商小程序需要使用https地址,也就是后台服务需要配置https 端口,百度使用方法,有些坑需要注意,这里做个笔录,记录下来 1、云服务器本身地址是http的,初始是IP地址+端口的模式,需要有一级域名才能解析二级域名使用,这里不在复述。 2、

    2024年02月03日
    浏览(29)
  • React-Native: Android 编译过程中 gradle 依赖包下载各种下载不下来、下载超时、极慢下载的处理方案。

     报错提示如下 1、下载不下来、下载超时。   2、下载极慢,基本就是几KB的在慢慢下载。  解决方案 就以报错提示来看,提供的下载jar压缩包的链接,丢到浏览器也是很难下载的。 但是,我们可以换个仓库去下载 https://mvnrepository.com/ 1、浏览器打开上面的链接 2、输入框搜

    2024年02月02日
    浏览(51)
  • centos系列:【 全网最详细的安装配置Nginx,亲测可用,解决各种报错】

    #输出实例 #补充Nginx常用命令 #查看Nginx进程 #全局配置 #I/O事件配置 #HTTP配置 #日志配置 #生成用户密码认证文件 #修改主配置文件相对应目录,添加认证配置项 #创建网页内容存放的地方 #配置网页 #配置nginx.conf #亲测配置示例 #修改hosts文件 #配置完后,输入htttp://192.168.88.130:

    2024年04月28日
    浏览(28)
  • stable diffusion教程,详细版,包括解决各种问题

    需要环境 git git下载地址Git - Downloading Package  直接装即可 python3.10.6 下载地址 Python Release Python 3.10.6 | Python.org 记得python环境一定要3.10.6!!! 第一个版本 项目地址https://github.com/AUTOMATIC1111/stable-diffusion-webui 或者使用git来拉取(如果没有git,git也要去下载) 第二个版本,是一

    2024年02月10日
    浏览(31)
  • 最全最详细的Java异常处理机制

            在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。              程序

    2024年01月23日
    浏览(30)
  • sshd源码编译报错处理

    这是笔者在初次源码编译安装sshd服务所遇到的一些问题,希望能帮助到一些初Linux初学者所遇到的问题: 遇到的错误信息 这个错误信息 “working libcrypto not found, check config.log” 通常在尝试构建或安装依赖于 OpenSSL 加密库的软件包时出现。 以下是您可以采取的一些步骤来解决

    2024年01月19日
    浏览(26)
  • 超详细的 Galgame 各种模拟器及工具使用教程

    原文链接 首先如果你使用的是安卓手机端,建议下载以下工具。 工具名称 作用描述 MT管理器 强大的文件管理器,方便你找到文件。 ZArchiver 简称ZA,强大的解压工具。支持中文密码,也可以在 Google Play 下载正版。 WINRAR 同样强大的解压工具,支持中文密码,同时可以修复.RA

    2024年02月02日
    浏览(29)
  • 【小程序教程】微信小程序的事件处理和交互逻辑(tap logpress touchmove input submint事件&冒泡与捕捉最详细讲解)

    为什么要学习事件处理和交互逻辑? 事件处理和交互逻辑在小程序开发中扮演着至关重要的角色。以下是几个原因: 提升用户体验:良好的事件处理和交互逻辑可以使小程序更加易用和友好,提升用户体验。通过合理设置事件触发条件和交互效果,可以使用户操作更加顺畅

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包