2017-04-21
分類: 技術資料
最近因為在拆包一個手遊,目前手遊比較著名的引擎不外乎是 Unity 與 Cocos2D-x 兩大陣營,恰巧之前在拆 EVA適格者 的時候(因為它已結束營運說了也沒差)它就是用到 Cocos2D-x 的引擎。
不過這次拆的遊戲剛好是 Unity 引擎的遊戲,之前也研究過幾個手遊的資源,所以對 Unity 引擎的遊戲還不算太陌生,雖然各自遊戲廠商都會想辦法讓自己的原始碼、資源圖像、音效等資源做不同程度的加密與防盜。一方面是為了不讓辛苦開發出來的遊戲輕易被盜走,另一方面也是減少遊戲可能被惡意竄改的風險。
即使是這樣,還是有許多各種各樣的人們,會想要(希望)能夠把遊戲反組譯,能夠一窺究竟遊戲的架構以及設計的方式。有人希望能夠找到遊戲漏洞或 BUG,讓自己遊戲能夠獨享別的玩家沒有的特權。也有人希望找到遊戲的圖片資源,作為收藏或參考用。當然還有各種各樣不同目的的人,而我,則是屬於拆包整理資料站分享給同樣喜愛這個遊戲的玩家們。
一直以來研究過了許多遊戲的架構,對我來說研究遊戲架構的過程有許多好處:
其實常常會在研究時發現意外的驚喜,意外竟然有這種架構設計方式、意外會在加密時外洩了密鑰、意外大遊戲公司也會寫出一個 10000 行程式的檔案等等。
現在來介紹針對 Unity 引擎開發的遊戲,資源打包方式當然大部分也是直接使用 Unity 的方案,因此 ReduMC 開發了 Unity Studio 可以把打包的資源解開。
Unity Studio is a tool for exploring, extracting and exporting assets from Unity games and apps.
只不過 ReduMC 的版本後來較少更新,且不支援後來 Unity 自家的 UnityFS 格式的檔案解包,因此 Perfare 決定改造一下,Fork 出了 Perfare/UnityStudio 並接續加了許多非常棒的功能,也持續有在更新。
老實說 Perfare 的版本幾乎該有的功能都有了,只是對我希望自動化處理上,截至 2017/04/11 Release 的 v0.7.0 版本,仍然無法使用 Command Line 操作 Unity Studio,Issue #21 Command line usage 仍然是 Open 的狀態。
好啦廢話說了那麼多,終於要來說主要介紹的工具 UnityStudioCli
是 Unity Studio Command Line 的版本。因為是 MIT License 的關係,原始碼也有了,就決定也自己來改造一下 XD
考量很久是否要 Open Source 出來,但這只是為了達成我需要的目的而改造,Perfare 也沒有明確表明不會增加這個 Feature,我又沒有改得很漂亮到能發 Pull request(這才是重點吧XD),所以決定以編譯執行檔的方式釋出,也不特別在 GitHub 上開專案放了。
原則上保留了原來 GUI 介面有能作到的功能,除了 Preview 之類的功能,指定檔案或目錄並解包到指定目錄。
下載:UnityStudioCli-v0.7.0-cli(1.0).zip
UnityStudioCli --help
Usage: UnityStudioCli [OPTIONS]+ extractPath
UnityStudioCli is forked from Perfare/UnityStudio
Perfare/UnityStudio GitHub: https://github.com/Perfare/UnityStudio
Based on Perfare/UnityStudio v0.7.0 GUI version.
Author: wsmwason https://wsmwason.com
Options:
-s, --sourcePath=PATH Unity assets source PATH or source FILE.
-g, --group=type|resource Extract assets group type|resource.
resource: Group by assets resource file.
(default)
type: Group by assets type.
-o Extract assets with original path tree.
Will group by resource file.
-V, --version Output version information and exit.
-h, --help Show this message and exit
UnityStudioCli -s D:\res.asset D:\res_export
UnityStudioCli -s D:\cab D:\cab_export
UnityStudioCli -s D:\cab -g type D:\cab_export
UnityStudioCli -s D:\cab -o D:\cab_export
這次用到 NDesk.Options 來作為 CLI 介面的參數處理 Library(也是 MIT License) ,原則上基本的 CLI 介面與防呆機制都做上去了,或許能幫到同樣有 CLI 需求的人,然後應該就暫時不會再更新版本或修正 BUG 了,因為我自己能用 XDD...除非我有其他的需求再看看吧。
也希望用到這個 Tool 的人都能用在正途,等到哪天 Perfare 或其他 PR 把這個 Feature 實作出來,它就完成階段性任務了。
上一篇: 新世紀福音戰士 適格者
因為滿喜歡美術設定,想提取某些場景圖片自用,但也礙於該遊戲已經結束營運,如今也無法藉由obb來解包
不過網路上還是有apk原始包,無奈的是試了滿多方式 依然解不出圖片檔,想求教大大是否能教學呢??
謝謝
如果你只是要圖片的話
之前我做的 EVA 適格者資料庫應該有大部分的圖片才對
https://eva.fws.tw/
如果沒看到的話
我手上應該還有一些沒釋出的圖片
有需要的話我可以寄給你