Unity游戏资源逆向工具
disunity是一款Java编写(需安装jdk1.8,即Java8)的解析Unity asset和asset bundle文件(流式加载,支持热更新)的命令行工具(已开源)
disunity0.3.4支持untiy5及以下版本,除了解析分析文件之外,还能使用extract参数提取某些类型资源(模型、纹理)
最新disunity0.5重新梳理了命令行参数,并进行了重构,比较可惜地是,这个版本去掉了资源提取功能
java.exe -jar "disunity.jar" bundle-extract "F:\\Resources\unity_builtin_extra"
Disunity Gui Helper是一款封装disunity的gui工具(已开源),最新的0.21版本可与disunity0.3.4版本配合进行工作
DisunityGui.exe下载后,要放在disunity.jar所在目录中
UnityAssetsExplorer可提取Unity asset和asset bundle文件中的某些类型资源(如:shader、tex等)
并且还支持将资源修改后,写回Unity asset和asset bundle文件
该工具对tex纹理提供了自动转换dds的功能
最新版本为v1.5,支持untiy5及以下版本
AssetsBundleExtractor是一款分析Unity asset和asset bundle文件的工具(已开源)
并且还支持将资源修改后,写回Unity asset和asset bundle文件
最新版本为2.2 stable d,支持untiy2019.2.0f1及以下版本
UABE开发日志记录:https://github.com/DerPopo/UABE
版本下载:Unity Assets Bundle Extractor github
Unity3d Obfuscator可以提取 unity web player.unity3d ,webplayer平台的的资源
该工具作者还开发了一些更强大的破解工具(收费),详见:DevXDevelopment
AssetStudio,又叫UnityStudio,是一款C#编写的十分强大的提取Unity asset和asset bundle文件中资源的工具(已开源)
支持Unity2.5~2019.1版本,支持的资源类型包括:Texture2D、Sprite、AudioClip、Font、Mesh、TextAsset、Shader、MovieTexture、VideoClip、MonoBehaviour、Animator
该项目一直保持着活跃,github地址为:https://github.com/Perfare/AssetStudio
AssetStudio导出贴图格式为dds,需要转成其他格式,可使用DDS Converter
ProjectExodus github开源的Untiy转UE4工具
https://github.com/NegInfinity/ProjectExodus
最后,一些图形相关资源可以用Tegra Graphics Debugger、高通Adreno、RenderDoc等抓帧调试工具来获取
从Unity asset文件中查看当前使用Unity版本
当前游戏使用是Unity2018.3.11f1版本制作的
从asset bundle文件中查看当前使用Unity版本
当前游戏使用是Unity2018.4.13f1版本制作的
asset bundle包会有一个manifest文本文件与之对应,如:suitcase_plastic_lootable.bundle.manifest
Unity PC端游XXX_Data目录结构
Managed目录:存放unity引擎、第三方和游戏逻辑托管dll 如:Assembly-CSharp.dll、Assembly-CSharp-firstpass.dll
Mono目录:Mono虚拟机相关的文件
Plugins目录:第三方Native dll库
Resources\unity default resources:unity引擎自带缺省资源
Resources\unity_builtin_extra:内置shader(如:Standard.shader)、缺省material等 里面99%是shader文件
StreamingAssets\Windows目录:项目工程中的StreamingAssets文件夹的内容不会压缩原封不动的拷贝到该目录下
globalgamemanagers:所有gameobject、shader、monobehaviour脚本、mesh、material、transform、audio,texture、spirite等的总览以及setting信息
globalgamemanagers.assets:playersetting中用到的资源
resources.assets:项目工程中的Resources文件夹的内容会打包到该文件中,但如果有资源被某场景使用,该资源则会存储于该场景对应的sharedassets<0~n>.assets中
level0、level1、level2、level44、level165:地图关卡文件,有几张地图就对应几个level文件
sharedassets0.assets、sharedassets1.assets、sharedassets2.assets、sharedassets44.assets、sharedassets165.assets:各关卡引用的texture,material,shader,material,animator,monobehaviour脚本等外部资源
参考
[反编译U3D]Decompile Unity Resources
Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四)