From c1beb962f502afb8b47760dc611751022d8be4c9 Mon Sep 17 00:00:00 2001 From: walon Date: Fri, 23 May 2025 08:18:21 +0800 Subject: [PATCH] =?UTF-8?q?SymbolObfus:=20=E4=B8=8D=E6=B7=B7=E6=B7=86?= =?UTF-8?q?=E5=B8=A6=E6=9C=89`[RuntimeInitializeOnLoadMethod]`=E7=9A=84?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E5=8F=8A=E5=AE=83=E7=9A=84=E7=88=B6=E7=B1=BB?= =?UTF-8?q?=E5=90=8D=EF=BC=88=E5=90=A6=E5=88=99Unity=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=B1=BB=E5=9E=8B=E5=92=8C=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=90=8D=E6=89=BE=E5=88=B0=E6=AD=A4=E5=87=BD=E6=95=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SymbolObfus/Policies/UnityRenamePolicy.cs | 9 +++++++++ com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs b/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs index 463b323..c404ff1 100644 --- a/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs +++ b/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs @@ -2,6 +2,7 @@ using Obfuz.Utils; using System; using System.Collections.Generic; +using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; @@ -134,6 +135,10 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies { return false; } + if (typeDef.Methods.Any(m => MetaUtil.HasRuntimeInitializeOnLoadMethodAttribute(m))) + { + return false; + } return true; } @@ -143,6 +148,10 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies { return !s_monoBehaviourEvents.Contains(methodDef.Name); } + if (MetaUtil.HasRuntimeInitializeOnLoadMethodAttribute(methodDef)) + { + return false; + } if (methodDef.DeclaringType.FullName.StartsWith("UnitySourceGeneratedAssemblyMonoScriptTypes_")) { return false; diff --git a/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs b/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs index e18cade..3103322 100644 --- a/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs +++ b/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs @@ -860,5 +860,10 @@ namespace Obfuz.Utils { return obj.CustomAttributes.Any(ca => ca.AttributeType.FullName == "Obfuz.EncryptFieldAttribute"); } + + public static bool HasRuntimeInitializeOnLoadMethodAttribute(MethodDef method) + { + return method.CustomAttributes.Any(ca => ca.AttributeType.FullName == "UnityEngine.RuntimeInitializeOnLoadMethodAttribute"); + } } }