可可西

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及以下版本

选择对应资源项,点击右键菜单“Extra This File”,就会在UnityAssetsExplorer.exe所在目录中新建一个当前打开的Asset文件名的文件夹,并将解压后的文件保存在其中
如:上图所示的资源UnityWatermark-dev.tex,会在unity default resources目录中生成出
UnityWatermark-dev.tex
UnityWatermark-dev.tex.dds
修改完dds(可使用Paint.net来修改)后,可通过右键菜单“Import This File From DDS”即可。
注1:导出的dds像素格式与mipmap要与原始dds保持一致(可使用nVidia的Windows Texture Viewer工具来查看)
注2:当dds的长宽不为2的n次幂时,会导入失败,提示:ERROR! Wrong size dds!
这种情况只能通过修改UnityWatermark-dev.tex,并通过右键菜单“Import This File From original-format”来导入

 

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(八十四)

Unity3D asset bundle 格式简析 

unity 打包后的文件都是什么 

 

posted on 2020-01-10 15:20  可可西  阅读(30778)  评论(2编辑  收藏  举报

导航