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一样啦。
然后,该解包就解包,总体上,简单得多了。
解密后,当然是要解包了,这个有需要下回再写。
祝大家玩的愉快,有空多多交流。
别忘点“在看”、“赞”和“分享”
新的规则,及时收推文要先给公号星标
别忘了星标一下,不然就错过了
长按进行关注,时刻进行交流。