PC端微信把wxapkg给加密,加密后的文件的起始为V1MMWX。
加密方法为:
首先pbkdf2生成AES的key。利用微信小程序id字符串为pass,salt为saltiest 迭代次数为1000。调用pbkdf2生成一个32位的key
取原始的wxapkg的包得前1023个字节通过AES通过1生成的key和iv(the iv: 16 bytes),进行加密
接着利用微信小程序id字符串的倒数第2个字符为xor key,依次异或1023字节后的所有数据,如果微信小程序id小于2位,则xorkey 为 0x66
把AES加密后的数据(1024字节)和xor后的数据一起写入文件,并在文件头部添加V1MMWX标识。
电脑端访问微信小程序会在C:Users用户DocumentsWeChat FilesApplet(即【我的文档 】下寻找WeChat Files 目录)目录以wx开头生成小程序包,不过是加密的,因此我们用此程序解密,配合小程序解包工具获取源码,比如wuWxapkg.js获取小程序源码。
一般的小程序反编译教程就是手机root然后在XXX目录下寻找wxapkg包,或者安装模拟器然后在寻找,其实可以更简单:登录电脑端微信,访问你想解包的小程序,小程序包会在:我的文档WeChat FilesApplet下生成wx开头的文件夹,里面包含__APP__.wxapkg文件,这个文件就是小程序包(不要复制出来)。