Disunity_V0.5.0 提取Unity生成的APK資源的後續探索

先把我的disunity v0.5.0資源地址告訴大家,方便大家下載:

http://download.csdn.net/download/narutojzm1/9484108

昨天我使用disunity v0.5.0 試圖提取資源時發現了apk中將asset分成了1M1包,N個小包,小包名字例如:split0/split1/split2... ... 不知所措。今天找到辦法了,

其實這個拆包方法就是單純的將文件流拆了而已,沒有什麼特殊之處,所以自己使用文件流的方式將資源合併也可以,但是我發現了一個好辦法,HxD,這個我隨後上傳,告訴大家地址,其實就是一個可以16進制讀文件,然後拆包合併包的工具而已。

吃水不忘挖井人,這個是我在GitHUB上找到的,如下:

https://github.com/ata4/disunity/issues/10

截圖:


合併成.assets後的工作就簡單了,我上一章也講了(當然我上一章得到的.assets是我從Windows端的exe版本數據包中取得的,並沒有拆包)。

上一章最後遇到的問題就是,我通過命令disunity asset unpack [file] 解出來的是一堆.block原生文件,上一章沒有對block文件進行再一步研究,今天讀了工具作者的一些話題文章有答案了:原來是因爲作者還並沒有進一步實現呢,證據如下:

https://github.com/ata4/disunity/issues/179

作者說:It's not supported in the 0.5 branch yet, since it requires object deserialization. I'll reimplement it eventually, at least for files that have embedded type trees.

就是說這些個.block原生文件他還沒有能夠反序列化,他會重新實現這個功能。

**************************************************這個話題就到此爲止了******************************************************************************************

接着我發現使用disunity 0.4可以將.asset文件直接解出來,不過只有一堆shader

其實我最需要的是level0和mainData這兩個文件,我覺得這兩個文件裏邊應該會有我需要的我的工程中損壞的.unity場景文件。我還着重關注了下這個

果然有篇討論講的這個,https://github.com/ata4/disunity/issues/10,題主大概的想法是問有沒有辦法方便的把這個apk再重新解了後再在unity editor中顯示出來啊,這和我的初衷很像,如果真能顯示出來,那斷然有.unity文件了嘛。

接着往下看



意思是說,你直接把mainData/levelx的後綴改成.unity就好了嘛

。所以我認爲,這個文件就相當於一個.unity文件,但是應該已經不能再用回原開發工程了,只能作爲一個新工程來用。然後這個新的場景文件使用的資源是什麼呢?我覺得就是.asset文件。我參考的是這一句:


我把這熒光筆標記的這句這樣翻譯:這些沒有後綴的文件使用了和assets文件相同的格式。(有異議歡迎討論,我拿不準)

關於使用上述文件還原新的場景這一步我還沒有具體試,先寫在這裏,容我改日再研究。

接下來我發現了一個關於解析APK的比較全面的博客,

http://forum.gamer.com.tw/Co.php?bsn=23805&sn=2998323,他裏邊還提供了一種叫做UnityStudio的方法,同時他對各種解析的工具做了對比,我受益良多,有興趣可以看看。

發佈了61 篇原創文章 · 獲贊 34 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章