mac版本的微信小程序是没有做加密的,可以直接反编译
反编译的工具是适用于mac和Windows的,其实Windows还有其他更好用的工具。
微信版本:大于3.8.0的 无需解密
原版工具:wxappUnpacker.zip
微信版本:小于3.8.0的
需要先解密再反编译 解密工具准备:mac_wxapkg_decrypt
安装npm
安装 node
brew install node
配置npm淘宝源
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
小程序相关准备工作
-
关闭 macos
的SIP
这部分网上教程很多,具体可以搜下,我公众号也有,叫做proxychains
的安装使用。
-
mac
版微信小程序的位置:
/Users/xxx/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/
其中xxx
是当前机器的用户名,当前我的机器用户名是xiaopi,合起来就是:
/Users/xiaopi/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/
可以看到当前的目录:
这个wxxxxx
的值是如何来的?
打开小程序,随便点几下,然后使用ls -lt
列出当前目录下的文件和文件夹,并按照时间戳进行从新到旧的排序,最开头的那个就是目标
我们为了完整的获取源码,就在原来的小程序上点点点,尽可能的点点点:
反编译小程序
在这里我们已经有了路径:
/Users/xiaopi/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/wx01bb1ef166cd3f4e/2121/__APP__.wxapkg
在这里将__APP__.wxapkg
复制出来,准备反编译。
反编译注意事项
在这里使用备份的wxappUnpacker进行解包:
以下为主包子包的反编译流程:
当检测到 wxapkg 为子包时, 添加-s 参数指定主包源码路径即可自动将子包的 wxss,wxml,js 解析到主包的对应位置下. 完整流程大致如下:
获取主包和若干子包 解包主包 ./bingo.sh testpkg/master-xxx.wxapkg 解包子包 ./bingo.sh testpkg/sub-1-xxx.wxapkg -s=../master-xxx
一般来说,主包比较大,子包比较小(不绝对)
在使用上面工具的时候,使用的时候有报错,继续安装对应模块试试:
npm install uglify-es
在这里使用上面的工具的话,反编译可能会报错的,所以在这里我就以我自己修复之后的工具来进行反编译,其实遇到的问题都可以从网上找到解决的方法。
主包反编译-无子包
这种大部分都可以反编译成功,在这里看下:
打开之后,就生成了对应的文件:
此时反编译看下:
./bingo.sh /Users/crow/Desktop/Wechat_small/small/__APP__.wxapkg
其实就是./bingo.sh 文件名
在这里输入文件的路径进行反编译,成功之后会生成一个__APP__
的目录文件。
此时可以看到文件比较完整(mac
和Windows
下反编译成功的文件可能有差异)
有子包的反编译
其实如果小程序本身很大的话,会自动出现子包,但如果你没访问到的话,是不会全部出现的,这里可以看到一个购物的小程序,在这里对主包先解密:
对主包解密,显示成功:
在这往上翻翻命令,看看刚刚解密的时候,里面显示有多少个分包:
一共有71
个分包,但是我们刚刚点来点去,只有一个出来,那就对那个分包进行解密。
具体的命令就是:
./bingo.sh -s=../__APP__/ /Users/crow/Desktop/Wechat_small/small/_pages_cats_.wxapkg
解密的时候,该子包会独自生成一个文件夹1,并且该文件夹的内容会自动的补充到主包的2里面去,所以只需要看2就行了。
总结
mac
新版微信,直接把那个__APP__.wxapkg
拿过来,解密就行了,但一定要注意解密的时候,上面写的有无分包,好好找找。
其实这部分反编译很快,大概只需要1分钟就可以搞定,但是这里面也会有解密失败的部分。
请登录后查看评论内容