PC端微信小程序wxapkg解密

sh点击上方蓝字[协议分析与还原]关注我们


“ 解密PC端wxapkg文件。”

用过微信pc版的应该都知道,PC上也可以使用微信小程序。

这个小程序用起来和手机端差不多,不过,在分析时,确是有差别的——PC上的wxapkg文件是加密的。

无论如何,加密的文件都应该要解密开来看看,满足下好奇心。

在PC上,微信小程序wxapkg目录在C:\Users\xxx\Documents\WeChat Files\Applet\wxbxxxxxxxxxxxxxxd0\xx,小程序id为:wxbxxxxxxxxxxxxxxd0,目录下一般存有__APP__.wxapkg等文件,和手机上差不多:

打开这些wxapkg文件,就和手机上导出的wxapkg差远了:

文件是加密的,典型特征是文件数据以V1MMWX六字节为起始。

注意,本文分析用到的微信PC版的版本是2.9.5.41,其它版本未验证。

现在,我们要解开wxapkg文件。

当然,这些wxapkg文件的加密算法还算简单,不难。

这些wxapkg文件的数据格式分成三个部分:

第一部分,文件的前6字节为V1MMWX;
第二部分,之后的1024字节为AES CBC加密数据;
第三部分,从1024+6之后的所有数据为异或加密的数据。

用UE等十六进制编辑器打开一个wxapkg,会很容易看到三个部分的界限。

文件第二部分的AES CBC加密,使用的key与对应的微信小程序id有关,也就是说每个微信小程序的wxapkg加密密钥是不同的。key是由pbkdf2算法生成的,32字节,算法使用的哈希函数为sha1,pass为微信小程序id,salt为固定值“saltiest”,迭代次数为1000。加密算法的iv是固定值“the iv: 16 bytes”,真够懒的。

文件第三部分的异或加密,真就是简单的异或,xorkey为微信小程序id的倒数第二字节的内容。

代码用python实现了,放在了github上,这里就不贴了,有兴趣的可以自己去翻。

经过一番解密,就可以看到,解密之后的数据和手机上的wxapkg一样啦。

然后,该解包就解包,总体上,简单得多了。

解密后,当然是要解包了,这个有需要下回再写。

祝大家玩的愉快,有空多多交流。

别忘点“在看”、“赞”和“分享”

新的规则,及时收推文要先给公号星标

别忘了星标一下,不然就错过了

长按进行关注,时刻进行交流。

猜你喜欢

转载自blog.csdn.net/yeyiqun/article/details/109172556