植物大战僵尸是09年非常风靡的一款游戏。虽然是2D画面,但是其游戏性、画面的轻松可爱、恰到好处的音效使人爱不释手。
最近想做一款类似的游戏,想先暂用其图像资源与音乐资源来,而专注于游戏程序编写本身。发现其所有的资源都打包在main.pak包中。经过一番努力,终于从中提取到所有的png图像1800多张,ogg格式音乐文件300余首。现在将整个过程简要说明。
1)该main.pak经过了加密。其实只是通过0XF7进行了一个简单的xor运算。通过对源文件进行xor运算可以得到未加密的资源文件。我们这里叫做mainbak.pak。
2)写一个程序将mainbak.pak读取,然后在文件(二进制)中查找png和ogg文件格式的特征码(魔数)。循环读取,就可以获取所有的资源了。
附:
png文件格式开头:0x89 0x50 0x4E 0x47
png文件格式结尾:0x49 0x45 0x4E 0x44 后面还有四位CRC,不过选取这四位标示结尾就可以了。算文件长度的时候记得加上四位CRC就可以了。
ogg魔数:0x4F 0x67 0x67 0x53 0x00 0x02 0x00 0x00 0x00 0x00
enjoy it !