轩_雨

青山不厌三杯酒,长日惟消一局棋
提取植物大战僵尸静态资源
  • macOS High Sierra系统 10.13.6

PVZ静态资源路径

大部分App的静态资源都在其包内容的Resources里面。PVZ的Resources如下图。

image-20210502103917488

这里只有箭头和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目录下即可使用。第一次打开需要验证,建议验证完重启应用进行使用,不然可能会出现一些权限问题。

image-20210503233239090

应用如图,UpLoad处选择本地的main.pak文件,SavePath选择要保存的路径。点Analysic进行解析,点Clear会清除一些中间结果。按钮右边是解析日志。解析的文件最后会以一个名为files文件夹的形式保存到SavePath下,需要保证SavePath下没有名为files的文件或文件夹。

image-20210503233902770

PVZ静态资源解析结果

如果想要直接获取所有的资源可以通过PVZ静态资源链接获取。

一、PVZ字体

img

二、PVZ图片

img

三、PVZ音频

posted on 2021-05-04 10:22  轩_雨  阅读(1211)  评论(0编辑  收藏  举报