提取植物大战僵尸静态资源
- macOS High Sierra系统 10.13.6
PVZ静态资源路径
大部分App的静态资源都在其包内容的Resources里面。PVZ的Resources如下图。
这里只有箭头和logo一类东西,没有图片、音频等文件。图片和音频都压缩在了main.pak这个文件里面。
Pak文件
Pak文件就是将多个文件打包为一个文件,这个文件中直接保存着多个资源文件及其描述结构。
植物大战僵尸的Pak文件是逐字节异或了0xf7进行加密。详细的过程可以参见这篇博客
Mac下解析main.pak文件
如果有想要看相关理论和源码可以看这篇博客,Mac和Linux没太大区别。我在Gitee上创建了一个开源项目,用C++重写了这些代码并提供了一定的封装。
一、基于命令行的文件解析
1. 安装相关软件工具
在解析之前,需要安装C/C++编译的相关软件和工具。MacOS可以通过Xcode进行安装。
2. 下载开源项目并进入pvz_resourses_parser目录。
$ git clone https://gitee.com/xuanyusan/pvz_resourses_parser.git
3. 通过 make 命令得到可执行文件文件。
$ make
4. 把 main.pak 文件拷贝到当前文件夹下,或者使用项目提供的文件,通过 make parse 命令进行解析。
$ make parse
5. 如果需要播放MO3格式的音频文件,可以执行 make installMo 安装相关依赖。
$ make installMo
6. 通过 unmo3 解析成XM格式,然后利用mikmode播放器播放。
$ unmo3 files/sounds/mainmusic.mo3
$ mikmod files/sounds/mainmusic.xm
二、基于应用程序的文件解析
目前这个项目在Gitee上的发行版仅供文件解析,不具备播放音乐等其他功能。发行版可能还会有一些Bug。
这里提供一下下载链接。
下载之后进行解压,放入Application目录下即可使用。第一次打开需要验证,建议验证完重启应用进行使用,不然可能会出现一些权限问题。
应用如图,UpLoad处选择本地的main.pak文件,SavePath选择要保存的路径。点Analysic进行解析,点Clear会清除一些中间结果。按钮右边是解析日志。解析的文件最后会以一个名为files文件夹的形式保存到SavePath下,需要保证SavePath下没有名为files的文件或文件夹。
PVZ静态资源解析结果
如果想要直接获取所有的资源可以通过PVZ静态资源链接获取。
一、PVZ字体
二、PVZ图片
三、PVZ音频
试探性地留下名字