首先,该pak文件经过xor 0xf7加密,所以需要逐字节异或0xf7来解密pak文件。
(这个0xF7密钥是我尝试出来的,我写程序生成了xor 0x00--0xff的文件,发现密钥为0xF7)
之后,文件分为两部分,前半部分为资源文件描述结构集合。
结构:
标记 1字节(0x0是文件,0x80文件结束)
文件名长度 1字节
文件名 char*
文件大小 4字节
文件时间 FILETIME结构
在N个这样的结构之后就是数据区了,最后一个这样的结构标记字段为0x80。
所以只需要定位到数据区起始位置,然后按照上面结构顺序读取,转存即可。