mac版微信小程序反编译学习

news2024/10/8 15:45:51

更新时间:2023年07月20日16:57:52
image.png

mac版本的微信小程序是没有做加密的,可以直接反编译
反编译的工具是适用于mac和Windows的,其实Windows还有其他更好用的工具。

本文是针对mac下使用微信的小程序进行解密,版本为3.8.1

小程序准备知识

可以参考:https://www.hackinn.com/index.php/archives/672/

mac版微信版本小于3.8.0的

需要先解密再反编译
解密工具准备:https://github.com/TinyNiko/mac_wxapkg_decrypt
解密的步骤可以看文章内容,本来我写出来了,但是怕大家混淆,所以这部分我就全删除了。
反编译见后文。

mac版微信版本大于3.8.0的(新版)

不需要解密,直接反编译即可!
以下源自于解密工具作者的描述(在此感谢作者提供的工具)
image.png

直接反编译即可!

2.小程序反编译-针对3.8.1版本

2.1 反编译工具下载

原版工具:
https://data.hackinn.com/tools/wxappUnpacker.zip

这个据说是优化版,可能效果更好,但是目前发现还是有bug的,可能是微信更新了,个人感觉暂时不好用,我自己修改了一点点,稍微好用一点了。
image.png

2.2 安装npm

mac安装npm

安装 node
brew install node
配置npm淘宝源
npm config set registry https://registry.npm.taobao.org

image.png

npm config set registry https://registry.npm.taobao.org
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
npm install escodegen

image.png

2.3 小程序相关准备工作

  • mac版微信:3.8.1 最新版(2023年07月20日16:59:02)

image.png

  • 关闭macosSIP

这部分网上教程很多,具体可以搜下,我公众号也有,叫做proxychains的安装。

  • mac版微信小程序的位置:
/Users/xxx/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/

其中xxx是当前机器的用户名,当前我的机器用户名是crow,合起来就是:

/Users/crow/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/

image.png

可以看到当前的目录:

image.png

这个wxxxxx的值是如何来的?
在手机上打开,可以找到详情,里面就有的:
image.png

image.png

此时我们打开文件之后,发现里面基本是空的:
image.png

我们为了完整的获取源码,就在原来的小程序上点点点,尽可能的点点点:

image.png

3.反编译小程序

在这里我们已经有了路径:

/Users/crow/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/wxfe3b722fc1e03b/7/__APP__.wxapkg

在这里将__APP__.wxapkg复制出来,准备反编译。

3.1 反编译注意事项

在这里使用备份的wxappUnpacker进行解包:
https://github.com/geilige/wxappUnpacker

当检测到 wxapkg 为子包时, 添加-s 参数指定主包源码路径即可自动将子包的 wxss,wxml,js 解析到主包的对应位置下. 完整流程大致如下:

  1. 获取主包和若干子包
  2. 解包主包 ./bingo.sh testpkg/master-xxx.wxapkg
  3. 解包子包 ./bingo.sh testpkg/sub-1-xxx.wxapkg -s=…/master-xxx

一般来说,主包比较大,子包比较小(不绝对)
在使用上面工具的时候,使用的时候有报错,继续安装对应模块试试:
npm install uglify-es

在这里使用上面的工具的话,反编译可能会报错的,所以在这里我就以我自己修复之后的工具来进行反编译,其实遇到的问题都可以从网上找到解决的方法。

3.2 主包反编译-无子包

这种大部分都可以反编译成功,在这里看下:
image.png
打开之后,就生成了对应的文件:

image.png

此时反编译看下:

./bingo.sh /Users/crow/Desktop/Wechat_small/small/__APP__.wxapkg
其实就是./bingo.sh 文件名

image.png

在这里输入文件的路径进行反编译,成功之后会生成一个__APP__的目录文件。
此时可以看到文件比较完整(macWindows下反编译成功的文件可能有差异)

image.png

image.png

3.3 有子包的反编译

其实如果小程序本身很大的话,会自动出现子包,但如果你没访问到的话,是不会全部出现的,这里可以看到一个购物的小程序:
在这里对主包先解密:

image.png

对主包解密,显示成功:
image.png

在这往上翻翻命令,看看刚刚解密的时候,里面显示有多少个分包:

image.png

一共有71个分包,但是我们刚刚点来点去,只有一个出来,那就对那个分包进行解密:
具体的命令就是:

./bingo.sh -s=../__APP__/ /Users/crow/Desktop/Wechat_small/small/_pages_cats_.wxapkg

image.png

解密的时候,该子包会独自生成一个文件夹1,并且该文件夹的内容会自动的补充到主包的2里面去,所以只需要看2就行了。

4.总结

mac新版微信,直接把那个__APP__.wxapkg拿过来,解密就行了,但一定要注意解密的时候,上面写的有无分包,好好找找。
其实这部分反编译很快,大概只需要1分钟就可以搞定,但是这里面也会有解密失败的部分。
后面还有一篇关于小程序流量抓取的文章,目前网上的很多文章都是不正确的。

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

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

相关文章

降低银行客户获取成本 (CAC) 的 3 种方法

银行的运营环境以及客户与银行服务互动的方式经历了深刻而彻底的变化。因此,银行业用于获取客户的方法必须经历平行演变。 传统上,客户根据利率和提供的服务范围来决定银行。然而,今天的客户期望更多。他们不仅需要有竞争力的价格和多样化的…

燃料电池FCU开发技术方案

燃料电池FCU电控开发介绍 FCU作为新能源汽车核心部件,对于氢燃料电池,追求的指标有:能量密度、额定功率、最大峰值功率(保持有限时间)、最小稳定功率(小于该功率,功率输出波动大,长…

九号滑板车F2 Pro采用全新折叠设计,为用户带来便捷使用体验

拥挤的城市中,滑板车可以作为一种快速、便捷的交通工具,帮助你避开交通堵塞。而且滑板车轻便,容易携带,你可以将它放在车上、公共汽车上、火车上,甚至在办公室或学校里使用。今天就带大家了解一款适合城市通勤骑行的车…

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

Competitive Collaboration 论文阅读

论文信息 题目:Competitive Collaboration: Joint Unsupervised Learning of Depth, Camera Motion, Optical Flow and Motion Segmentation 作者:Anurag Ranjan, Varun Jampani, Lukas Balles 来源:CVPR 时间&#x…

考研资料共享系统的设计说明

考研资料共享系统的设计说明 设计意义及目的模块划分技术难点写项目中遇到的问题该项目的后端模块介绍该项目的前端模块介绍运行演示Gitee链接 设计意义及目的 为了方便找资料,了解考研形式;另一方面是锻炼编写系统的能力 模块划分 主要划分为&#xff1…

Oracle VM VirtualBox 安装 Ubuntu Linux

Virtual Box VirtualBox是一个强大的、面向个人用户或者企业用户的虚拟机产品,其支持x86以及AMD64/Intel64的计算架构,功能特性丰富、性能强劲,支持GPL开源协议,其官方网址是www.virtualbox.org,由Oracle开源&#xf…

冠达管理:哪些股票属于大权重?

跟着我国资本商场的开展,股票出资已经成为众多出资者出资的重要选择。在股票商场中,不同的股票权重不一,那么什么是大权重股票?哪些股票归于大权重呢?本文将从多个角度分析,带您了解大权重股票。 一、什么是大权重股…

华为云云耀云服务器L实例评测|部署spring项目端口开放问题的解决 服务器项目环境搭建MySQL,Redis,Minio...指南

目录 引出书接上回,部署spring项目,端口访问失败最后排查结果反馈 尝试的几种解决方案【未成功】1.指定tomcat启动ipv4端口2.添加开放端口规则保存规则防火墙相关命令记录 最终成功解决【成功!】用firewall成功了问题来了,如果这里…

HTTP代理只能代理HTTP协议吗?

HTTP代理是一种代理服务器,它可以充当客户端和服务器之间的中介,以帮助客户端访问服务器上的资源。但是,HTTP代理并不仅仅只能代理HTTP协议。 HTTP代理可以代理的协议 除了HTTP协议之外,HTTP代理还可以代理其他协议,例…

服务器数据恢复-EMC存储磁盘损坏的RAID5数据恢复案例

服务器数据恢复环境: 北京某单位有一台EMC某型号存储,有一组由10块STAT硬盘组建的RAID5阵列,另外2块磁盘作为热备盘使用。RAID5阵列上层只划分了一个LUN,分配给SUN小机使用,上层文件系统为ZFS。 服务器故障&#xff1…

windows安装CUDA

windows安装CUDA 说明 适用于你的电脑为nvidia的显卡 第一步 先运行nvcc -V 查看cuda版本,不过应该都是未识别的命令,如下图所示 打开pytorch的官网 https://pytorch.org/get-started/locally/ ,查看其支持最新的cuda为多少版本&#xf…

2651. 计算列车到站时间

文章目录 Tag题目来源题目解读解题思路方法一:数学 知识回忆除法运算 写在最后 Tag 【数学】 题目来源 2651. 计算列车到站时间 题目解读 给你一个列车预计到达时间点和一个列车延误的时间,请返回列车实际的到达时间。 解题思路 方法一:数…

如何使用Web Storage对页面中数据进行监听?

当使用Web Storage存储的数据发生变化时,会触发Window对象的storage事件,我们可以监听该事件并指定事件处理函数,当其他页面中的localStorage或 sessionStorage中保存的数据发生改变时,就会执行事件处理函数。 监听storage事件的…

Java实现SFTP传输

一、SFTP是什么? SFTP(SSH File Transfer Protocol)是一种基于SSH(安全外壳)的安全的文件传输协议,使用SFTP协议可以在文件传输过程中提供一种安全的网络的加密算法,从而保证数据的安全传输 S…

Win11打不开组策略编辑器怎么办

近期有小伙伴反映在使用Win11打开组策略编辑器的时候发现无法打开,这是怎么回事,遇到这种问题应该怎么解决呢,下面小编就给大家详细介绍一下Win11打不开组策略编辑器的解决方法,有需要的小伙伴快来和小编一起看看吧。 Win11打不开…

系统架构设计师-嵌入式系统

目录 一、嵌入式系统概述 1、基本概念 2、嵌入式系统软件组成架构 二、嵌入式软件开发 三、嵌入式硬件 1、嵌入式微处理器 2、人工智能芯片 3、嵌入式微处理器体系结构 4、总线 四、嵌入式操作系统 1、嵌入式实时操作系统 2、操作系统内核架构 3、鸿蒙操作系统 五、嵌入式…

【数据结构-队列】双端队列

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

【多线程】阻塞队列实现原理代码实现

目录 一、概念 二、优势 三、原理(代码逐步实现) 四、BlockingQueue的使用 一、概念 阻塞队列是一种的特殊的队列,他是带有阻塞的线程安全的队列。当队列已满时入队操作就会进入阻塞,当队列不空时才能执行入队操作&#xff1b…

抓安卓日志命令

临时生成logcat文件 ctrl z 是停止 adb logcat -> /home/log/log.txt 导出全部日志 adb root adb remount 只抓安卓日志 logcat (所有保存的日志,中途关机和开机都有) adb pull log/android D:\73log\1android 抓全部日志&#x…