[图文教程] unity3D 如何提取游戏资源 (反编译)+代码反编译

http://bbs.9ria.com/thread-401140-1-1.html

 

http://www.xuanyusong.com/archives/2584

 

感谢今天某大神(既然是大神名子我当然要保密喽)告诉我Disunity更新了,不然我还不知道。以前很多人都说用Disunity提取出了Unity3D资源,但是我在Mac上从来没有成功过,一直在报错。https://github.com/ata4/disunity/releases 在这里可以看到Disunity3.0是19天以前更新的,新版本真的是太好用了,我不得不赞一下 嘿嘿。 不过记得要在MAC上装好jdk7


http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 在这里可以下载mac os 的。


接着找一个Unity3d做的游戏,这里我在补充一下如何辨认某个游戏是用u3d做的。


1.在网上随便下载一个游戏.ipa,并且解压到本地。


2.找到xxx/xxx.app,右键显示包内容,打开Data文件夹。


3.如果发现文件夹中包含 unity default resources 文件,那么恭喜你这个游戏就是用unity3d做的。


151228pgq7qz7l7fpq0rbr.png


再看看这里几个比较重要的文件。


level0 / leve1 ….   图中0-5一共有6个文件,这表示这个游戏用了6个游戏场景。


sharedassets0/sharedassets1 …. 图中0-6一共有7个文件,它的数量永远比场景的数量多一个,可见它和场景有关联性,可以用工具把它解开看看。


Managed:这个文件夹下放的都是dll ,unity自己写的脚本编译成dll后就放在这里,还有其他第三方的dll也放在这里。


resources.assets:这个东西就比较重要了,他游戏里面所有放在resources文件夹下的东西都会放在这里,我们提取也主要在这里提取。


Raw:如果游戏在StreamingAssets文件夹下放东西,那么就会出现一个Raw文件夹。


PS:我个人觉得最好不要在StreamingAssets文件夹下放东西,因为ipa一解开就能看到里面放的啥东西了。如果真的要放,我觉得最好不要放.assetbundle 文件。 因为你需要用www.LoadFromCacheOrDown 这样第一次它会把StreamingAssets下的assetbundle 解压到本地的cache文件夹中,那么StreamingAssets文件夹又是一个只读的文件夹,也就是说你只能读取不能删除,结果就会造成容量过大  因为 解压后的文件 和没有解压的文件都保存在本地。。 所以assetbundle最好直接从服务器上下载,那么这样本地就不会多出来一个assetbundle。


回到正题,说说怎么提取资源。


https://github.com/ata4/disunity/releases 


先把DisUnity3.0版本下载到本