Unity3D游戏资源的提取

现在越来越多的安卓游戏用Unity3D引擎编写,以前关注的地方都是内购破解方面,所以修改比较多的地方是C/C++编写的dll逻辑,资源的提取很少操作。看了 @林哥 的分享,http://www.kanxue.com/bbs/showthread.php?t=191380 ,觉得这方面提升的空间很大,就折腾了一番。
 
  
前言
在游戏中看到一张优美的画面,想作为手机壁纸;听到一首好听的音乐,想作为手机铃声。想啊 但是怎么找到它们?这就是资源的提取,下面我就说说对他们的浅显认识。
Unity3D资源的存在形式
国内一些比较小的Unity3D游戏基本上资源文件都打包在了apk的assets文件夹中,如下图中的《爸爸去哪儿2》资源结构:
Unity3D游戏资源的提取_第1张图片

我们知道,国外的游戏一般体验较高 画质一流,所以资源文件会更大。并且貌似在国外 有一个规则就是资源文件大于60M的apk,必须要外带obb资源包。obb的引入方法就是放在SDCard的游戏目录下,obb其实就是一个压缩文件,文件内容同单独apk包下的 \assets\data\ 路径文件。如《死亡航线 Dead Route》的obb文件结构:

Unity3D游戏资源的提取_第2张图片

一般资源文件夹中的文件类型的说明
Shader:文本文件,后缀为.shader,配置有关;
Texture2D:图片文件,一般的格式为tga或ktx,前者比较常用,后前网上说需要安装PowerVR 
                      Tools & SDK v3.3才可以打开;
AudioClip:游戏的声音文件,格式是常见的wav或mp3等;
Mesh:游戏全部的模型文件,格式obj,需要在3DMax或Maya中打开。

如下图《死亡航线 Dead Route》提取出来的文件目录:

Unity3D游戏资源的提取_第3张图片

obb中资源文件的提取

强大的开源工具:Disunity。作者付出的努力和无私 @林哥 在那篇帖子中已经溢于言表..它是个Java程序,编译之后用命令行bat就行,将从obb解压出来的Data文件夹直接拖到cmd框中,即可自动试下解密,如下图:

Unity3D游戏资源的提取_第4张图片

由于每个文件夹都有不同的资源 不便于特定资源的查找,所以就网罗了一个工具:IrfanView,它能够将不同文件夹下的资源放在一起进行预览,方法及效果如下图:

Unity3D游戏资源的提取_第5张图片 Unity3D游戏资源的提取_第6张图片
后记
资源算是提取出来,进阶是不是应该试试修改操作呢,比如替换图片,汉化等?遗憾的是Disunity并没有提供回编的功能,这就需要我们自己阅读它的源码,看它是怎么解出来文件的 才能做下一步的回编..(里面的表述和方式一定会有错误 还望看出来的高手不吝指出,谢谢)


你可能感兴趣的:(技术杂烩)