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

admin 2023年9月8日17:23:12评论74 views字数 2999阅读9分59秒阅读模式
✎ 阅读须知


乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!

本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!


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

mac版本的微信小程序是没有做加密的,可以直接反编译

反编译的工具是适用于mac和Windows的,其实Windows还有其他更好用的工具。

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

1. 小程序准备知识

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

1.1 mac版微信版本小于3.8.0的

需要先解密再反编译 解密工具准备:https://github.com/TinyNiko/mac_wxapkg_decrypt

解密的步骤可以看文章内容,本来我写出来了,但是怕大家混淆,所以这部分我就全删除了。反编译见后文。

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

不需要解密,直接反编译即可!

以下源自于解密工具作者的描述(在此感谢作者提供的工具),所以高版本的mac版微信是不需要解密的。

mac下新版微信小程序反编译学习
image.png

直接反编译即可!

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

2.1 反编译工具下载

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

这个据说是优化版,可能效果更好。

但是目前发现还是有bug的,可能是微信更新了,个人感觉暂时不好用,我自己修改了一点点,稍微好用一点了。

mac下新版微信小程序反编译学习
image.png

2.2 安装npm

mac安装npm

安装 node
brew install node
配置npm淘宝源
npm config set registry https://registry.npm.taobao.org
mac下新版微信小程序反编译学习
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
mac下新版微信小程序反编译学习
image.png

2.3 小程序相关准备工作

  • mac版微信:3.8.1 最新版(截止2023年07月20日16:59:02)
mac下新版微信小程序反编译学习
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/
mac下新版微信小程序反编译学习
image.png

可以看到当前的目录:

mac下新版微信小程序反编译学习
image.png

这个wxxxxx的值是如何来的?

在手机上打开,可以找到详情,里面就有的:

mac下新版微信小程序反编译学习
image.png
mac下新版微信小程序反编译学习
image.png

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

mac下新版微信小程序反编译学习
image.png

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

mac下新版微信小程序反编译学习
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 主包反编译-无子包

这种大部分都可以反编译成功,在这里看下:

mac下新版微信小程序反编译学习打开之后,就生成了对应的文件:

mac下新版微信小程序反编译学习
image.png

此时反编译看下:

./bingo.sh /Users/crow/Desktop/Wechat_small/small/__APP__.wxapkg
其实就是./bingo.sh 文件名
mac下新版微信小程序反编译学习
image.png

在这里输入文件的路径进行反编译,成功之后会生成一个__APP__的目录文件。

此时可以看到文件比较完整(macWindows下反编译成功的文件可能有差异)

mac下新版微信小程序反编译学习
image.png
mac下新版微信小程序反编译学习
image.png

3.3 有子包的反编译

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

mac下新版微信小程序反编译学习
image.png

对主包解密,显示成功:

mac下新版微信小程序反编译学习
image.png

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

mac下新版微信小程序反编译学习
image.png

一共有71个分包,但是我们刚刚点来点去,只有一个出来,那就对那个分包进行解密。

具体的命令就是:

./bingo.sh -s=../__APP__/ /Users/crow/Desktop/Wechat_small/small/_pages_cats_.wxapkg
mac下新版微信小程序反编译学习
image.png

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

4. 总结

mac新版微信,直接把那个__APP__.wxapkg拿过来,解密就行了,但一定要注意解密的时候,上面写的有无分包,好好找找。

其实这部分反编译很快,大概只需要1分钟就可以搞定,但是这里面也会有解密失败的部分。

后面还有一篇关于小程序流量抓取的文章,目前网上的很多文章可能都算不上正确。(个人感觉而已)

5. 承接安全类业务

承接攻防演练、安全类培训、渗透测试、ctf、授权aj 等安全类项目,有意请联系我的微信。👇🏻👇🏻👇🏻

tips:加我wx,拉你入群,一起学习


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

原文始发于微信公众号(滑板人之家):mac下新版微信小程序反编译学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月8日17:23:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   mac下新版微信小程序反编译学习https://cn-sec.com/archives/2018800.html

发表评论

匿名网友 填写信息