您的位置:首页 > 健康 > 美食 > 存在分包的微信小程序解包反编译还原(含报错处理与代码修复)

存在分包的微信小程序解包反编译还原(含报错处理与代码修复)

2024/10/6 2:25:29 来源:https://blog.csdn.net/2401_83799022/article/details/142173520  浏览:    关键词:存在分包的微信小程序解包反编译还原(含报错处理与代码修复)

01前言

本文主要对微信小程序的解包步骤进行复现梳理,网上虽然已有明确详细的文章,但是实际复现过程中程序报错的情况并不少见。对此情况进行了梳理以及对相关工具的代码、调用方式等进行了优化修复。

本文内容:

  1. 常规微信小程序逆向解析的一般步骤
  2. 存在分包的微信小程序wxappUnpacker执行报错问题解决
  3. 微信小程序子包使用wxappUnpacker readme文件中命令解包报错问题解决

02环境准备

  1. 微信app
  2. UnpackMiniApp.exe
  3. npm(node.js)
  4. wxappUnpacker
  5. 微信开发者工具(可选)

03解码复现

小程序解密

小程序解密工具为代码果所编写UnpackMiniApp.exe [https://github.com/Angels-Ray/UnpackMiniApp]
先找到微信的缓存文件位置,点击微信左下角的设置按钮。

找到该文件缓存目录,搜索.wxapkg后缀的文件或直接搜索__APP__.wxapkg文件,根据修改日期、时间找到你想要解包的文件

打开文件夹,发现有多个.wxapkg文件,该小程序存在分包。

打开代码果的解密程序,按照程序提示信息,创建wxpack文件夹

选择微信小程序加密包,进行解密

选择解密后生成的包,并重命名(分包会以相同的命名方式命名,如果小程序有分包,解密后不重命名,分包的解密结果会覆盖主包)

解密包反编译还原

先安装配置工具,参考wxappUnpacker的readme文件[https://github.com/Angels-Ray/wxappUnpacker]
在wxappUnpacker目录下安装依赖(文尾参考文献有node安装参考,以及源替换参考)

将代码果解密的生成文件重命名为[解密完成包.wxapkg],移到wxappUnpacker下的testpkg文件夹,进行解包。

尝试运行,存在分包的小程序运行报错。

wuConfig.js:49
for (let page of subPackage.pages) {^
TypeError: subPackage.pages is not iterable

找到报错文件

找到报错相关语句

根据报错信息,subPackage.pages不可迭代报错,增添数组校验

if (Array.isArray(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);}}
} else {console.log('subPackage.pages is not an array:', subPackage.pages);
}

删除之前解包创建的文件夹,重新生成

重新执行生成

正常执行完成,

下一步对分包进行解包,发现报错

wuWxapkg.js:176
throw new Error("检测到此包是分包后的子包, 请通过 -s 参数指定存放路径后重试, 如 node wuWxapkg.js -s=/xxx/xxx ./testpkg/test-pkg-sub.wxapkg");
Error: 检测到此包是分包后的子包, 请通过 -s 参数指定存放路径后重试, 如 node wuWxapkg.js -s=/xxx/xxx ./testpkg/test-pkg-sub.wxapkg

同理排查文件wuWxapkg.js,找到报错行

依据代码中给出的说明,查看执行命令行排查

根据源bat文件的调用方式

传入的-s=../解密完成包中=变成了空格,用引号括起来可以防止这种情况

bingo.bat testpkg/解密完成包_分包1.wxapkg "-s=../解密完成包"

正常解包完成

将其内容复制粘贴到主包中即可

待所有分包处理完毕后,可将整个文件夹用微信开发着工具打开,以便于全局查找

Ctrl+Shift+f全局查找,查看是否存在敏感信息泄露等,一般可关注secret、password等。如果拿到比较重要的secret,比方说云存储的AK/SK,可调取系统存储在云端的数据与文件。

参考文献

  1. 微信小程序逆向:https://blog.csdn.net/Python_0011/article/details/134681114
  2. node安装配置:https://blog.csdn.net/qq_42006801/article/details/124830995
  3. node源替换:https://blog.csdn.net/gitblog_00001/article/details/141760237
  4. 代码果解密工具UnpackMiniApp:https://github.com/Angels-Ray/UnpackMiniApp?tab=readme-ov-file
  5. 微信解包工具wxappUnpacker:https://github.com/Angels-Ray/w

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com