From 161ab5a29e37cf86003f06b7fbda17044906df75 Mon Sep 17 00:00:00 2001 From: walon Date: Fri, 6 Jun 2025 22:47:38 +0800 Subject: [PATCH] =?UTF-8?q?symbol=20mapping=E6=96=87=E4=BB=B6=E4=B8=AD?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9A=84=E7=B1=BB=E5=9E=8B=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E8=AE=B0=E5=BD=95=E4=BB=8D=E7=84=B6=E4=BF=9D?= =?UTF-8?q?=E7=95=99=E5=9C=A8=E8=BE=93=E5=87=BA=E7=9A=84symbol=20mapping?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SymbolObfus/RenameRecordMap.cs | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/Editor/ObfusPasses/SymbolObfus/RenameRecordMap.cs b/Editor/ObfusPasses/SymbolObfus/RenameRecordMap.cs index 080be59..bb1dba4 100644 --- a/Editor/ObfusPasses/SymbolObfus/RenameRecordMap.cs +++ b/Editor/ObfusPasses/SymbolObfus/RenameRecordMap.cs @@ -385,10 +385,29 @@ namespace Obfuz.ObfusPasses.SymbolObfus if (mod != null) { var types = mod.GetTypes().ToDictionary(t => _typeRenames.TryGetValue(t, out var rec) ? rec.oldName : t.FullName, t => t); - var sortedTypes = new SortedDictionary(types); - foreach (TypeDef type in sortedTypes.Values) + if (_assemblies.TryGetValue(assName, out var ass)) { - WriteTypeMapping(assemblyNode, type); + var totalTypeNames = types.Keys.Concat(ass.types.Keys).ToHashSet().ToList(); + totalTypeNames.Sort((a, b) => a.CompareTo((b))); + foreach (string typeName in totalTypeNames) + { + if (types.TryGetValue(typeName, out TypeDef typeDef)) + { + WriteTypeMapping(assemblyNode, typeDef); + } + else + { + WriteTypeMapping(assemblyNode, typeName, ass.types[typeName]); + } + } + } + else + { + var sortedTypes = new SortedDictionary(types); + foreach (TypeDef type in sortedTypes.Values) + { + WriteTypeMapping(assemblyNode, type); + } } } else