当前位置: 首页 > news >正文

Unity游戏资源逆向工具

Unity游戏资源逆向工具

https://www.cnblogs.com/kekec/p/12175547.html

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 打包后的文件都是什么 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • UE4 Pak 文件格式
  • 更新UnrealPakViewer工具
  • UE4中Taglib使用及插件制作
  • UE4编辑器扩展踩坑血泪史
  • require函数
  • UE4 给static mesh 动态添加Socket
  • UE4 角色用Child Actor组建添加装备 这样方便随时添加,更换套装等行为
  • Unity Assets目录下的特殊文件夹名称
  • Unity-ShaderVariantCollection
  • Unity渲染教程(九):复杂材质 https://www.jianshu.com/p/5e3af869870f
  • HttpWebRequest(System.Net)模拟HTTP发送POST
  • C#中用HttpWebRequest中发送GET/HTTP/HTTPS请求 (转载)
  • System.Net.HttpWebRequest.GetRequestStream超时问题
  • System.Net.HttpWebRequest.GetResponse() 远程服务器
  • 【转载】HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Git学习与使用心得(1)—— 初始化
  • go append函数以及写入
  • isset在php5.6-和php7.0+的一些差异
  • Java Agent 学习笔记
  • Laravel 实践之路: 数据库迁移与数据填充
  • magento2项目上线注意事项
  • Median of Two Sorted Arrays
  • node 版本过低
  • node和express搭建代理服务器(源码)
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • ubuntu 下nginx安装 并支持https协议
  • 阿里云购买磁盘后挂载
  • 安装python包到指定虚拟环境
  • 半理解系列--Promise的进化史
  • 猴子数据域名防封接口降低小说被封的风险
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 来,膜拜下android roadmap,强大的执行力
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • Java性能优化之JVM GC(垃圾回收机制)
  • mysql面试题分组并合并列
  • 阿里云移动端播放器高级功能介绍
  • 从如何停掉 Promise 链说起
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​ubuntu下安装kvm虚拟机
  • ​人工智能书单(数学基础篇)
  • # centos7下FFmpeg环境部署记录
  • #etcd#安装时出错
  • #Linux(Source Insight安装及工程建立)
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (小白学Java)Java简介和基本配置
  • (一)u-boot-nand.bin的下载
  • (译) 函数式 JS #1:简介
  • (转) ns2/nam与nam实现相关的文件