private static void InitializeInternal() { if (LogToFile.Value) { InitializeFileLog(); } LibcHelper.Init(); bool IsUnityPlayer(ProcessModule p) { return(p.ModuleName.ToLowerInvariant().Contains("unityplayer")); } var proc = Process.GetCurrentProcess().Modules .Cast <ProcessModule>() .FirstOrDefault(IsUnityPlayer) ?? Process.GetCurrentProcess().MainModule; if (IntPtr.Size == 8) { patcher = new X64Patcher(); } else { patcher = new X86Patcher(); } patcher.Patch(proc.BaseAddress, proc.ModuleMemorySize); }
internal static void OnUnityLog(InternalLogLevel logLevel, IntPtr message, IntPtr parts) { try { OnUnityInternalLog?.Invoke(null, new UnityLogEventArgs { LogLevel = logLevel, Message = LibcHelper.Format(message, parts) }); } catch (Exception e) { File.WriteAllText($"unity_logger_err_{DateTime.Now.Ticks}.txt", e.ToString()); } }