現在手機遊戲可說是一片血海,沒幾天就會迸出一個新的手遊預先登錄
收掉的速度也令人瞠目結舌(尤其是手遊天尊SE社,幾乎是月月推新手遊但多數營運連一年都撐不過)
這些手遊內容大多是複製成功的玩法,例如龍族拼圖LIKE、怪物彈珠LIKE、FGO LIKE、白貓LIKE...等
除了畫風不同外,內容可說是大同小異,毫無新意
甚至許多事前登錄連玩法都不說,遊戲畫面都沒有
只有各種胸部比臉大的美少女騙宅男玩家投錢,轉蛋機率各各跟FGO比低的
不過不得不說日系萌系美少女的確能吸引眼球,可說是打安全牌吧
只是角色再精美,遊戲本身無趣是無法長久留住玩家的
很多遊戲除了角色立繪外,遊戲性本身跟屎一樣
難道為了蒐集老公/老婆就必須連屎都吞下去嗎?不!
本日就介紹如何解包遊戲圖片,也作為自己的紀錄筆記
關於解包,網路上早已有不少同性質的介紹,本文只教初學者一些簡單的觀念
每個遊戲的實際作法都不同,圖片也可能經過加密等
請不要詢問我是否能幫忙解包某某遊戲或某某遊戲無法解包,請自行融會貫通
注意:解包對遊戲公司來說通常是違反條約的(進入遊戲時要按下同意的那個)
因此解出來的全部資源請自行蒐藏,勿隨意散播,盡量低調點
例如網頁遊戲Unlight,因為玩家拆出官方的黑資料後多次貼在論壇上,逼官方把資料加密
Sdorica在多次被爆料新角色動作模型後,也把尚未實裝的資料移除
不過解包通常也是玩家間一個炒熱度的話題,不要太過分的話官方通常也是閉一隻眼
※APK
把從Google Play安裝的安裝包取出的作法
最簡單的作法應該是安裝「ES檔案瀏覽器」後,選擇[程式]-[備份]
程式會放到內部儲存的backups/apps目錄中
APK本身是一個壓縮檔,可以直接用WinRAR等解壓縮軟體打開
部分遊戲的音樂跟一部分資源會放在此處
※資源包
目前大多數手遊為了節省下載時間跟方便替換資源,會在第一次執行時才下載必要資源
這些額外下載的檔案會放到內部儲存空間(internal storage)
由於權限關係可能要root過的裝置才能觀看
所以準備一個模擬器或手機,把檔案複製出來(這邊用夜神模擬器作示範)
建議勾選[開啟Root]
用模擬器下載該遊戲並安裝(可以找APK或用QOO下載)
進入遊戲,通常會再下載大部分資源,等待下載完成
如果無法用模擬器進入遊戲就無法使用
(某些遊戲會在抽到角色的情況下才另外下載檔案,就更加複雜,除非找到下載點否則無法下載未來檔案)
開啟檔案管理APP(最好支援ROOT),在此用ES檔案瀏覽器示範
遊戲下載的資料通常在以下兩個位置其一
/data/data/<package-name>
sdcard/Android/data/<package-name>
前者必須有root權限才能訪問,後者不用
要查看前者時,請記得要把超級使用者功能開啟
至於在哪一個呢?兩個地方我都看遊戲放過,通常是目錄比較大的那個
如果不清楚安裝包名稱,用修改時間由後至前排序,通常就在前面
進入後通常會有files跟cache目錄,前者是APP的資料,後者是快取
把files中需要的檔案複製,貼到模擬器的共享資料夾(對應到實體硬碟位置的目錄)
如果是Unity的遊戲,資源通常放在AssetBundles
如果不清楚共享資料夾的路徑,可以開啟模擬器右方的圖示觀看
一般是放在<使用者>/Nox_share
用檔案總管就能把這些檔案取出
如果遊戲本身是Unity開發(現在大部分遊戲都是用此開發了)
可以下載高手寫的AssetStudio(原名UnityStudio)(作者blog)
選擇[File]-[Load folder],開啟AssetBundles目錄,會對所有檔案進行解包
根據檔案多寡會解包一段不短的時間
點選[Asset List],裡面就是全部能拆開的項目,通常會有音樂、圖片素材等(請看Type)
不過蒼空那時也有遇過圖片解析異常,有部分扭曲變形的情況,總之一切隨緣
選擇[Export]-[All assets],可以將全部資料匯出
這裡就不提供解包後的檔案了,自己動手,豐衣足食
如果匯出後是pvr格式的話更複雜(幸好不是每個遊戲都有)
目前我知道批次解包的作法可以參考這篇
下載PowerVR這個程式安裝(只需安裝PVRTexTool即可)
接著撰寫批次檔找到所有pvr檔案並轉換
以下是灰灰撰寫的一套批次檔,留作紀錄
@echo off
path %path%;"C:\Imagination\PowerVR_Graphics\PowerVR_Tools\PVRTexTool\CLI\Windows_x86_32"
for /f "usebackq tokens=*" %%d in ('dir /s /b ExtractedAssets\Texture2D\*.pvr') do (
PVRTexToolCLI.exe -f PVRTC1_4 -i "%%d" -d "%%~dpnd.png"
del "%%~dpnd.pvr"
)
※圖片被分成了不太正常的原圖跟只描繪外框的圖片,要如何合併?
這樣的圖片是為了支援Unity的透明貼圖功能,說明可參考這篇
想得到漂亮的合併圖,比較建議的作法是寫個程式去合併兩者
範例語法如下,產生一個畫布並根據兩張圖片的RGB值組合成新圖片
藍色文字為自訂變數,選擇來源檔名跟儲存檔名
var alphaBitmap = new Bitmap(alphaFileName);
var sourceBitmap = new Bitmap(sourceFileName);
var result = new Bitmap(sourceBitmap.Width, sourceBitmap.Height);
for (int i = 0; i < result.Width; i++)
{
for (int j = 0; j < result.Height; j++)
{
result.SetPixel(i, j, Color.FromArgb(alphaBitmap.GetPixel(i, j).R, sourceBitmap.GetPixel(i, j)));
}
}
result.Save(newFileName, System.Drawing.Imaging.ImageFormat.Png);
※程式要怎麼解包?
還記得剛剛files目錄中有個il2cpp,這是Unity中使用il2cpp選項編譯出的程式
Unity開發的程式一般都是使用C#,所以可以用ILSpy等.NET反組譯工具打開dll
不過裡面程式都已經被混淆,非常難反組譯
我試過还原使用IL2CPP编译的unity游戏的symbol這篇介紹也是失敗收場
所以...有圖就好

*****
*****
問題來了,什麼才是有趣呢?
有不有趣因人而異 我想強調的是光靠美術而沒有遊戲性是沒辦法留住玩家的 不然日本就不會半年消失近百款手遊了 這些倒閉的手遊中還不乏許多"真香"的美少女轉蛋手遊 https://www.hk01.com/%E9%81%8A%E6%88%B2%E5%8B%95%E6%BC%AB/92551/%E6%97%A5%E6%9C%AC%E6%96%B0%E6%89%8B%E9%81%8A%E7%9A%86%E7%9F%AD%E5%91%BD-%E5%8D%8A%E5%B9%B4%E8%BF%91%E7%99%BE%E9%9A%BB%E6%B6%88%E5%A4%B1-%E5%88%80%E4%BB%94%E9%8B%B8%E5%A4%A7%E6%A8%B9%E7%97%87-%E5%80%99%E7%BE%A4
我照着这个方法只提取到了一部分的图片,还有很多都找不着,但很确定那些图有被下载到,因为无需网络也能加载出来(本来是需要网络才能加载的)。 请问这是怎么一回事?有办法解决吗?
有可能是部分圖片不是包在Asset中 像我以前玩過的蒼空解放,圖片就超級難解出來 要麻煩你自己試試看了
請問版主 天堂M手遊也是用此套方式抽出圖片嗎?
你好,AssetStudio基本上是抽Unity做出來的遊戲 如果不是Unity的遊戲就得找別的解包方法 我沒下載天堂M所以不清楚
大佬你好,小弟这边按照你的办法在解d4dj这款游戏,但是里面的文件后缀名都有enc。使用AssetStudio也无法读取,请问这种情况还有救么?
你好,看起來圖片有再加密過 我查了一下網路上有其他人問,但都沒得到解答 除非能找到金鑰,不然應該無法破解吧 幫不上忙,不好意思
按照教學的步驟,有成功拆到圖片了, 但是圖片是有透明貼圖的那一種, 合併的方法有一點難, 可以講得詳細一點嗎, 謝謝你
簡單來說,當初我是寫個小程式去合 下載點如下 https://sites.google.com/site/catchtest2/AlphaMixer.zip 因為當初只是寫好玩的,沒有增加批次處理功能 如果你那邊有需要,請再留言回覆
成功合併了,程式很方便,謝謝你
不客氣,有幫助到你就好