unity_build_information_detection
This is an old revision of the document!
Table of Contents
Inspecting Information from Built Unity Players
It can be useful to inspect information from built Unity players1).
High Level
Unity Version
Find this information in:
.unity3d
file header- resource file headers, for example:
unity default resources
globalgamemanagers
level<number>
sharedassets<number>.assets
- files with 32 characters long names using hexadecimal characters [0-9a-f]
- [Android]3)
lib/<arch>/libunity.so/.note.unity
- [Windows]
<executable>/.rsrc/version.txt
- [Windows]
UnityPlayer.dll
- Properties / Details / File version
Used Assemblies
These methods work even with IL2CPP builds.
ScriptingAssemblies.json
- Search for
.dll
inglobal-metadata.dat
with a hex editor.
Use cases:
- We can determine URP usage by looking for
Unity.RenderPipelines.Universal.*.dll
4)
Notes
global-metadata.dat
appears to contain all the method/property/field names in UTF-8 (or at least those that were used and not stripped) from all the assemblies that were used by the build.
1)
e.g. to check whether a certain DLL is used by the game
2)
Even Notepad works, although only for files <500KB. Notepad may struggle to open bigger files.
3)
since 2017.4
4)
e.g.
Unity.RenderPipelines.Universal.Runtime.dll
5)
ie. Mono
6)
dnSpy or ILSpy for .dll files
7)
runtime assembly generation/loading and other methods relying on JIT
unity_build_information_detection.1643391754.txt.gz · Last modified: 2025/01/15 04:35 (external edit)