微信小程序反编译~2022年

  • 饿了么红包
    每天可领 全场通用
  • 小程序反编译

    前言

    微信小程序反编译可以通过对小程序包进行反编来获取小程序源码,在一次信息收集的过程中对某公司的APP、微信公众号、小程序进行抓包数据分析寻找接口等有用的信息时,在抓包过程中由于微信的反抓包机制实际测试过程中遇到一些问题,导致通过直接抓包的方式抓取小程序数据失败。后通过一些方式了解到小程序反编,于是想到是否可以采取这种方式反编小程序后进行源码审计。这篇文章主要介绍了微信小程序反编的方法在这里与大家进行分享一同学习。

    环境工具准备

    • node.js运行环境
    • 小程序解密脚本
    • 反编脚本
    • 微信小程序开发者工具

    以上工具打包分享
    链接: https://pan.baidu.com/s/1pxyQMPiRkjq3p2qE85Z6zA?pwd=1111
    提取码: 1111

    下载工具包后进行解压首先安装node.js环境,安装完成后通过cmd运行 node -v 和 npm -v查看版本是否安装成功。

    图片[1]-微信小程序反编译~2022年-小宇资源网

    小程序包下载

    PC端和手机端小程序在运行时会将程序包缓存到本地,但是程序包经过了加密,我们不能够直接进行反编解包,这里我们需要首先对小程序包进行解密后才能够对其进行反编。

    小程序包的解密首先需要找到小程序包缓存到本地的位置,这里以PC端为例不演示手机端。打开微信设置-文件管理,打开下图中的路径找到下图路径中WeChat Files文件夹。默认微信缓存文件在系统C盘用户文档目录下,我这里微信缓存位置做了修改。

     

    图片[2]-微信小程序反编译~2022年-小宇资源网

    路径下Applet目录就是微信小程序缓存的位置

    图片[3]-微信小程序反编译~2022年-小宇资源网

    打开目录我们可以看到有很多以wx开头+16位16进制数命名的文件夹,每个文件夹下就是一个微信小程序的缓存。

    图片[4]-微信小程序反编译~2022年-小宇资源网

    随便打开一个目录目录下名为__APP__.wxapkg包就是微信小程序的主包。

    图片[5]-微信小程序反编译~2022年-小宇资源网

    有些小程序可能会有下面这种情况除了__APP__.wxapkg包外还有一个或多个其他.wxapkg后缀的文件,其他的文件就是也是小程序的包,可以看做是子包,对于功能比较复杂的小程序可能会有多个包。

    图片[6]-微信小程序反编译~2022年-小宇资源网

    Applet下这么多的小程序缓存我们如何快速定位到自己要进行反编的小程序,这里总结了两个方法:

    第一总方法是根据首次打开小程序的时间,我们第一次打开某个小程序的时候这时小程序会缓存到本地,可根据文件的修改时间大致判断。

    图片[7]-微信小程序反编译~2022年-小宇资源网

    第二种方法更为简单,我们直接将Applet文件夹下的所有小程序缓存包删除掉,再访问一次将要准备反编的小程序,这时Applet下就只有这一个小程序的缓存包了,简单粗暴哈哈哈。

    小程序包解密

    下面我们就使用小程序包解密工具对包进行解密,解压小程序包解密工具如下图运行UnpackMiniApp.exe

    图片[8]-微信小程序反编译~2022年-小宇资源网

    图片[9]-微信小程序反编译~2022年-小宇资源网

    图片[10]-微信小程序反编译~2022年-小宇资源网

    图片[11]-微信小程序反编译~2022年-小宇资源网

    解密成功后输出到wxpack文件夹下,文件格式不变。

    小程序包反编译

    经过解密后的的包格式依然是 .wxapkg ,下一步我们需要对包进行反编译就可以获取小程序的源代码。

    我们使用中的 wxappUnpacker 脚本对其进行反编译。步骤如下:
    解压 wxappunpacker 进入这个目录后在目录下运行 cmd 执行命令

    node wuWxapkg.js D:\小程序包解密\wxpack\wx8f446acf8c4a85f5.wxapkg ## 其中 D:\小程序包解密\wxpack\wx8f446acf8c4a85f5.wxapkg 为解密后的小程序包路径位置

    图片[12]-微信小程序反编译~2022年-小宇资源网

    图片[13]-微信小程序反编译~2022年-小宇资源网

    运行上述命令反编译完成后在包路径下生成一个同名文件夹存储源代码

    图片[14]-微信小程序反编译~2022年-小宇资源网

    如果我们需要反编的小程序中有多个包,也就是有主包和子包的情况时,主包和子包的反编过程与前面的步骤相同,先进行解密。反编的时候先对主包进行反编,再对子包进行反编,子包反编与主包略有不同。使用命令如下:

    ## 1.主包反编node wuWxapkg.js xxx ## xxx为主包的路径## 2.子包反编node wuWxapkg.js xxx1 -s= xxx2 ## xxx1为子包的文件路径,xxx2为反编主包生成的文件路径

    反编译如果使用过程中出现报错缺少相关组件,在根目录下使用cmd运行以下命令进行安装,通过我分享的工具包中是已经更新安装完的在node_modules文件下,默认不需要再重新安装,如执行存在相关组件问题可尝试重装解决。

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

    图片[15]-微信小程序反编译~2022年-小宇资源网

    图片[16]-微信小程序反编译~2022年-小宇资源网

    图片[17]-微信小程序反编译~2022年-小宇资源网

    源码查看

    完成解密和反编后我们已经获取到了小程序包的源码,最后我们可以使用微信小程序开发工具进行编辑开发或查看审阅源码。

    在我分享的工具包中提供了win64版本的微信小程序开发工具安装包,如需不同版本的安装包也可自行到微信开发者官方网页进行下载

    https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

    安装完成后我们运行工具使用游客模式登录

    图片[18]-微信小程序反编译~2022年-小宇资源网

    选择导入,进行导入小程序源码

    图片[19]-微信小程序反编译~2022年-小宇资源网

     

    选择要导入的小程序源码路径

    图片[20]-微信小程序反编译~2022年-小宇资源网

     

     

    图片[21]-微信小程序反编译~2022年-小宇资源网

    导入后就可以进行审阅编辑操作了。

    图片[22]-微信小程序反编译~2022年-小宇资源网

    我在前面有提到手机端的微信小程序,实际上手机端和PC端的小程序包都是相同格式的只要我们找到手机小程序包缓存位置将包导出到电脑中也可进行反编,在PC端进行反编相对于从手机提取小程序包要方便一些。有兴趣的小伙伴可进行尝试。

    参考连接:

    https://www.52pojie.cn/thread-1336730-1-1.html

    https://blog.csdn.net/qq_41510985/article/details/117924751

    https://www.secpulse.com/archives/179273.html

  • 外卖/打车/电影
    各类优惠券 每天都有
  • © 版权声明
    THE END
    喜欢就支持一下吧
    点赞57 分享
    评论 抢沙发
    头像
    欢迎您留下宝贵的见解!
    提交
    头像

    昵称

    取消
    昵称表情代码图片