- 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靜態資源鏈接獲取。