Skip to content

Commit 0bf2654

Browse files
authored
A "little" rewrite.
Added Header. Added badges for no longer maintained or archived projects. Added AssetRipper as a replacement for uTinyRipper. Updated Gimp Plugin link & Nvidia Tools for DDS files. Moved "Extracting and editing code" inline links into a new table. Fixed broken links.
1 parent 4bb385e commit 0bf2654

File tree

1 file changed

+82
-66
lines changed

1 file changed

+82
-66
lines changed

README.md

Lines changed: 82 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,65 @@
1+
# Unity Game Hacking Guide
2+
13
This is a small guide for extracting and modifying assets or code from games made with the Unity engine. Feel free to contribute.
24

35
1. [Unity game folder structure](#unity-game-folder-structure)
46
2. [Extracting and editing code](#extracting-and-editing-code)
57
3. [Extracting assets](#extracting-assets)
68
4. [Hacking memory](#hacking-memory)
79

10+
811
## Unity game folder structure
912

1013
```
11-
*.exe
12-
└──*_Data
13-
globalgamemanagers
14-
globalgamemanagers.assets
15-
level0
16-
level0.resS
17-
...
18-
| levelN
19-
| levelN.resS
20-
sharedassets0.assets
21-
sharedassets0.assets.resS
22-
...
23-
| sharedassetsN.assets
24-
| sharedassetsN.assets.resS
25-
| resources.assets
26-
├───Managed
27-
Assembly-CSharp.dll
28-
Assembly-UnityScript.dll
29-
Mono.Security.dll
30-
mscorlib.dll
31-
System.Core.dll
32-
System.dll
33-
UnityEngine.dll
34-
UnityEngine.dll.mdb
35-
UnityEngine.Networking.dll
36-
UnityEngine.UI.dll
37-
├───Mono
38-
mono.dll
39-
└───etc
40-
└───mono
41-
browscap.ini
42-
config
43-
├───1.0
44-
DefaultWsdlHelpGenerator.aspx
45-
machine.config
46-
├───2.0
47-
DefaultWsdlHelpGenerator.aspx
48-
machine.config
49-
settings.map
50-
web.config
51-
└───Browsers
52-
Compat.browser
53-
└───mconfig
54-
config.xml
55-
└───Resources
56-
unity default resources
57-
unity_builtin_extra
14+
│ *.exe
15+
└──*_Data
16+
globalgamemanagers
17+
globalgamemanagers.assets
18+
level0
19+
level0.resS
20+
...
21+
| levelN
22+
| levelN.resS
23+
sharedassets0.assets
24+
sharedassets0.assets.resS
25+
...
26+
| sharedassetsN.assets
27+
| sharedassetsN.assets.resS
28+
| resources.assets
29+
──Managed
30+
Assembly-CSharp.dll
31+
Assembly-UnityScript.dll
32+
Mono.Security.dll
33+
mscorlib.dll
34+
System.Core.dll
35+
System.dll
36+
UnityEngine.dll
37+
UnityEngine.dll.mdb
38+
UnityEngine.Networking.dll
39+
UnityEngine.UI.dll
40+
──Mono
41+
mono.dll
42+
──etc
43+
──mono
44+
browscap.ini
45+
config
46+
──1.0
47+
DefaultWsdlHelpGenerator.aspx
48+
machine.config
49+
──2.0
50+
│ │ DefaultWsdlHelpGenerator.aspx
51+
│ │ machine.config
52+
│ │ settings.map
53+
│ │ web.config
54+
│ │ ──Browsers
55+
Compat.browser
56+
──mconfig
57+
config.xml
58+
──Resources
59+
unity default resources
60+
unity_builtin_extra
5861
```
5962

60-
\* : Name chosen during building
61-
6263
File/Directory | Description
6364
--- | ---
6465
*.exe | Executable file of the game
@@ -70,42 +71,57 @@ Managed | Folder containing unity DLLs
7071
Assembly-CSharp.dll | DLL file containing compiled C# files
7172
Assembly-UnityScript.dll | DLL file containing compiled UnityScript files
7273

74+
With ``*`` : The name of the main executable (.exe).
75+
76+
7377
## Extracting and editing code
7478

7579
C# and UnityScript files are compiled into the Assembly-CSharp.dll and Assembly-UnityScript.dll DLLs respectively, which can be found inside the Managed folder.
7680

77-
DLLs can be decompiled using [ILSpy](http://ilspy.net/) or [dnSpy](https://github.com/0xd4d/dnSpy) which allow modifying and recompiling assembly files.
81+
DLLs can be decompiled using ILSpy, dnSpy, DotPeek or JustAssembly which allow modifying and recompiling assembly files.
82+
83+
If DLLs are missing from the managed directory, try dumping them using MegaDumper tool.
84+
85+
Tool | Decription
86+
--- | ---
87+
[ILSpy](https://github.com/icsharpcode/ILSpy) | Cross-platform .NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more).
88+
[DotPeek](https://www.jetbrains.com/decompiler/) | JetBrains DotPeek is a free .NET Decompiler and Assembly Browser.
89+
[dnSpy](https://github.com/dnSpy/dnSpy) | dnSpy is a debugger and .NET assembly editor. You can use it to edit and debug assemblies even if you don't have any source code available.
90+
[Telerik JustAssembly](https://www.telerik.com/justassembly) | Decompile and Compare .NET Assemblies. Binary Code Diff. Method Diff.
91+
[MegaDumper](https://github.com/CodeCracker-Tools/MegaDumper) <br /> ![No Longer Maintained](https://img.shields.io/badge/No%20Longer%20Maintained-red.svg) | To extract missing DLLs from managed Directory.
7892

79-
If DLLs are missing from the managed directory, try dumping them using this tool [MegaDumper](https://github.com/CodeCracker-Tools/MegaDumper)
8093

8194
## Extracting assets
8295

83-
Assets are stored in the .assets and .resS files. Content of these files can be unpacked with one of these tools :
96+
Assets are stored in the .assets and .resS files.
97+
Content of these files can be unpacked with one of these tools :
8498

8599
Tool | Description
86100
--- | ---
87-
[UtinyRipper](https://github.com/mafaca/UtinyRipper) | uTinyRipper is a tool for extracting assets from serialized files (CAB-*, *.assets, *.sharedAssets, etc.) and assets bundles (*.unity3d, *.assetbundle, etc.) and conveting them into native Engine format.
88-
[Unity Studio](https://github.com/RaduMC/UnityStudio) | A tool for exploring, extracting and exporting assets from Unity games and apps.
89-
[Unity Assets Bundle Extractor](https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor) | UABE is a tool that allow modification of assets file and extraction of assets in usable formats (png/tga for textures, obj for meshes).
90-
[Unity Assets Explorer](http://zenhax.com/viewtopic.php?f=9&t=36) | Can extract textures to .DDS format, meshes to .43 format.
91-
[QuickBMS](http://aluigi.altervista.org/quickbms.htm) with [this script](http://aluigi.altervista.org/bms/unity.bms) or [this one for webplayer](http://aluigi.org/papers/bms/unity3d_webplayer.bms) |
101+
[AssetRipper](https://github.com/AssetRipper/AssetRipper) | AssetRipper is a tool for extracting assets from serialized files (CAB-*, *.assets, *.sharedAssets, etc.) and assets bundles (*.unity3d, *.bundle, etc.) and converting them into the native Unity engine format. It's a fork of ``uTinyRipper``.
102+
[Unity Assets Bundle Extractor](https://github.com/SeriousCache/UABE) | UABE is an editor for 3.4+/4/5/2017-2021.3 .assets and AssetBundle files. It can create standalone mod installers from changes to .assets and/or bundles.
103+
[QuickBMS](https://aluigi.altervista.org/quickbms.htm) with [this script](https://aluigi.altervista.org/bms/unity.bms) or [this one for webplayer](https://aluigi.altervista.org/bms/unity3d_webplayer.bms) | universal script based files extractor and reimporter. QuickBMS supports tons of games and file formats, archives, encryptions, compressions, obfuscations and other algorithms.
92104
[DevXUnityUnpacker](https://devxdevelopment.com/Unpacker) | A (paid) tool with a friendly GUI meant for restoring unity projects by inputting the built game/app including a previewer for individual files as image, hex, text etc.
93-
[UnityEX](https://yadi.sk/d/m3vFWoQ3j62Cr) | Tool for extracting/converting files from .assets bundles and replacing files (Mostly used for replacing textures).
94-
105+
UnityEX | Tool for extracting/converting files from .assets bundles and replacing files (Mostly used for replacing textures).
106+
[uTinyRipper](https://github.com/mafaca/UtinyRipper) <br /> ![No Longer Maintained](https://img.shields.io/badge/No%20Longer%20Maintained-red.svg) | (This project is no longer maintained, use AssetRipper Instead) uTinyRipper is a tool for extracting assets from serialized files (CAB-\*, \*.assets, \*.sharedAssets, etc.) and assets bundles (\*.unity3d, \*.assetbundle, etc.) and conveting them into native Engine format.
107+
[Unity Studio](https://github.com/RaduMC/UnityStudio) <br /> ![No Longer Maintained](https://img.shields.io/badge/No%20Longer%20Maintained-red.svg) | A tool for exploring, extracting and exporting assets from Unity games and apps.
108+
[Unity Assets Explorer](https://zenhax.com/viewtopic.php?t=36) <br /> ![No Longer Maintained](https://img.shields.io/badge/No%20Longer%20Maintained-red.svg) | Unity Assets Explorer is used to view the contents of Assets-files (Unity 3D engine). Allows you to: Extract all files, extract one file (from context menu), convert tex-files into a picture format DDS (on extraction), import the changed DDS-images to the archive.
95109

96-
#### DDS files :
110+
Some of these tools can do more than just extract assets.
97111

98-
The [DDS](https://en.wikipedia.org/wiki/DirectDraw_Surface) files can be opened/converted/edited with this [gimp plugin](http://registry.gimp.org/node/70) or this [photoshop plugin](https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop).
112+
### DDS files :
99113

100-
#### Another way of extracting meshes and textures :
114+
The [DDS](https://en.wikipedia.org/wiki/DirectDraw_Surface) files can be opened/converted/edited with the following tools :
101115

102-
Use [3D Ripper DX](http://www.deep-shadows.com/hax/3DRipperDX.htm) (doesn't support 64 bits binaries) or [Ninja Ripper](http://cgig.ru/en/2012/10/ho-to-use-ninja-ripper/).
103-
104-
Alternatives:
105116
Tool | Tutorial
106117
--- | ---
118+
[Ninja Ripper](https://ninjaripper.com/) | Extract (rip) 3D scenes from games and explore them in 3D editor (Blender, 3D Max, Noesis). <br /> [An old guide](http://cgig.ru/en/2012/10/ho-to-use-ninja-ripper/) on how to use Ninja Ripper. <br /> The official [YouTube Channel](https://www.youtube.com/channel/UCgT-ET20KlC4AcECNtW9gyw) can be usefull for latest video tutorial.
107119
[RenderDoc](https://renderdoc.org/) | [Tutorial](https://www.youtube.com/watch?v=yPLxCm3SyPU) on how to use RenderDoc.
108-
[Intel® Graphics Performance Analyzers](https://software.intel.com/content/www/us/en/develop/tools/graphics-performance-analyzers.html) | [Tutorial](https://forum.xentax.com/viewtopic.php?t=12262) on how to use the Intel Graphics Analyzers to extract graphics.
120+
[NVIDIA Texture Tools Exporter](https://developer.nvidia.com/nvidia-texture-tools-exporter) | The NVIDIA Texture Tools Exporter allows users to create highly compressed texture files - that stay small both on disk and in memory - directly from image sources using NVIDIA’s CUDA-accelerated Texture Tools 3.0 compressor technology. <br /> **Can be used as a standalone software or as an Adobe Photoshop Plugin**.
121+
[Intel® Graphics Performance Analyzers](https://www.intel.com/content/www/us/en/developer/tools/graphics-performance-analyzers/overview.html) | Improve your game's performance by quickly identifying problem areas. <br /> [Tutorial](https://forum.xentax.com/viewtopic.php?t=12262) on how to use the Intel Graphics Analyzers to extract graphics.
122+
[Gimp Plugin](https://code.google.com/archive/p/gimp-dds/downloads) | This is a plugin for GIMP version 2.8.x. It allows you to load and save images in the Direct Draw Surface (DDS) format.
123+
[3D Ripper DX](http://www.deep-shadows.com/hax/3DRipperDX.htm) | This soft doesn't support 64 bits binaries.
124+
109125

110126
## Hacking memory
111127

0 commit comments

Comments
 (0)