As both magic number and version are checked with IL2CPP_ASSERT, they are not actually enforced at runtime, and may be changed to anything without affecting functionality. I've noticed that there are games in which global-metadata.dat does not match the actual IL2CPP version being used, which might confuse users of this tool.
This PR adds extra checks found in Unity-2022.3.0f1:
As both magic number and version are checked with
IL2CPP_ASSERT
, they are not actually enforced at runtime, and may be changed to anything without affecting functionality. I've noticed that there are games in whichglobal-metadata.dat
does not match the actual IL2CPP version being used, which might confuse users of this tool.Details can be found in my blog (Chinese): https://reimu.moe/2024/06/09/IL2Cpp-String-Literals/#String-Literals%20%E6%98%AF%E5%A6%82%E4%BD%95%E5%AD%98%E5%82%A8%E7%9A%84%EF%BC%88v27-%EF%BC%89