From 2d9782fdb729c75de7fc929a8f05f0c74ebb8848 Mon Sep 17 00:00:00 2001 From: walon Date: Mon, 16 Jun 2025 11:41:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20ReflectionCompatibilityDet?= =?UTF-8?q?ector=E9=94=99=E8=AF=AF=E5=9C=B0=E5=AF=B9=E6=9C=AA=E6=B7=B7?= =?UTF-8?q?=E6=B7=86=E7=A8=8B=E5=BA=8F=E9=9B=86=E4=B8=ADEnum=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E9=94=99=E8=AF=AF=E6=97=A5=E5=BF=97=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SymbolObfus/ReflectionCompatibilityDetector.cs | 6 ++++-- Editor/ObfusPasses/SymbolObfus/SymbolRename.cs | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Editor/ObfusPasses/SymbolObfus/ReflectionCompatibilityDetector.cs b/Editor/ObfusPasses/SymbolObfus/ReflectionCompatibilityDetector.cs index a5bb68b..b78b0c6 100644 --- a/Editor/ObfusPasses/SymbolObfus/ReflectionCompatibilityDetector.cs +++ b/Editor/ObfusPasses/SymbolObfus/ReflectionCompatibilityDetector.cs @@ -11,11 +11,13 @@ namespace Obfuz.ObfusPasses.SymbolObfus { public class ReflectionCompatibilityDetector { + private readonly HashSet _assembliesToObfuscate; private readonly List _obfuscatedAndNotObfuscatedModules; private readonly IObfuscationPolicy _renamePolicy; - public ReflectionCompatibilityDetector(List obfuscatedAndNotObfuscatedModules, IObfuscationPolicy renamePolicy) + public ReflectionCompatibilityDetector(List assembliesToObfuscate, List obfuscatedAndNotObfuscatedModules, IObfuscationPolicy renamePolicy) { + _assembliesToObfuscate = new HashSet(assembliesToObfuscate); _obfuscatedAndNotObfuscatedModules = obfuscatedAndNotObfuscatedModules; _renamePolicy = renamePolicy; } @@ -137,7 +139,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus private bool IsAnyEnumItemRenamed(TypeDef typeDef) { - return typeDef.Fields.Any(f => _renamePolicy.NeedRename(f)); + return _assembliesToObfuscate.Contains(typeDef.Module) && typeDef.Fields.Any(f => _renamePolicy.NeedRename(f)); } private void AnalyzeCallvir(IMethod calledMethod, ITypeDefOrRef constrainedType) diff --git a/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs b/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs index 3a978b9..a62de35 100644 --- a/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs +++ b/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs @@ -182,7 +182,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus PrecomputeNeedRename(); if (_detectReflectionCompatibility) { - var reflectionCompatibilityDetector = new ReflectionCompatibilityDetector(_obfuscatedAndNotObfuscatedModules, _renamePolicy); + var reflectionCompatibilityDetector = new ReflectionCompatibilityDetector(_toObfuscatedModules, _obfuscatedAndNotObfuscatedModules, _renamePolicy); reflectionCompatibilityDetector.Analyze(); } RenameTypes();