| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| unity_build_information_detection [2026/02/07 10:05] – 103.49.146.90 | unity_build_information_detection [2026/03/26 08:58] (current) – old revision restored (2026/03/19 12:35) klea |
|---|
| Are your players ready to face the Soulmonger? This campaign takes characters from level 1 to 11 and promises a high likelihood of character death. To run it effectively, a Dungeon Master needs to study the layout of the final dungeon carefully. Using a Tomb of Annihilation PDF can streamline the preparation process, allowing you to bookmark deadly traps like the adamantine propeller or the elemental cells. The adventure also introduces new backgrounds and items specific to the region. Having these rules accessible on a tablet or laptop via a digital version ensures that gameplay remains smooth, even when the party decides to trek into the uncharted territories of the Greater Undead areas. https://tombofannihilationpdf.store/ Tomb Of Annihilation Player Guide Pdf | ====== Inspecting Information from Built Unity Players ====== |
| | |
| | It can be useful to inspect information from built Unity players. This can be helpful to check whether a certain DLL is used by the game, or verify that the player built properly. |
| | |
| | ===== High Level ===== |
| | |
| | * [Android] .xapk/.apk/.so can be traversed with [[https://www.7-zip.org/|7-Zip]] |
| | * Unity asset file headers can be inspected with any hex editor((Even Notepad works, although only for files <500KB. Notepad may struggle to open bigger files.)) |
| | |
| | ===== 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]((since 2017.4)) ''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'' in ''global-metadata.dat'' with a hex editor. |
| | |
| | Use cases: |
| | |
| | * We can determine URP usage by looking for ''Unity.RenderPipelines.Universal.*.dll''((e.g. ''Unity.RenderPipelines.Universal.Runtime.dll'')) |
| | |
| | ===== Notes ===== |
| | |
| | * In non-IL2CPP((ie. Mono)) builds, all code that made it into a build is also available to the end user and can be viewed with tools ((dnSpy or ILSpy for .dll files)) relatively easily. Obfuscation can mitigate this, however the most effective obfuscation methods((runtime assembly generation/loading and other methods relying on JIT)) are not compatible with IL2CPP so can't be used by developers. |
| | * ''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. |