From b2fda781d3e791432f9aef1290efcc11cbbe5898 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 22 Aug 2025 14:53:49 +0800 Subject: [PATCH 1/2] fix WPF relative resource renaming --- Confuser.Renamer/Analyzers/WPFAnalyzer.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Confuser.Renamer/Analyzers/WPFAnalyzer.cs b/Confuser.Renamer/Analyzers/WPFAnalyzer.cs index 9cc9993f9..39f3f9f4f 100644 --- a/Confuser.Renamer/Analyzers/WPFAnalyzer.cs +++ b/Confuser.Renamer/Analyzers/WPFAnalyzer.cs @@ -60,8 +60,14 @@ public void PreRename(ConfuserContext context, INameService service, ProtectionP var decodedName = HttpUtility.UrlDecode(doc.DocumentName); var encodedName = doc.DocumentName; if (bamlRefs.TryGetValue(decodedName, out var references)) { - var decodedDirectory = decodedName.Substring(0, decodedName.LastIndexOf('/') + 1); - var encodedDirectory = encodedName.Substring(0, encodedName.LastIndexOf('/') + 1); + var decodedLastSlash = decodedName.LastIndexOf('/') + 1; + var encodedLastSlash = encodedName.LastIndexOf("/") + 1; + + var decodedDirectory = decodedName.Substring(0, decodedLastSlash); + var encodedDirectory = encodedName.Substring(0, encodedLastSlash); + + var decodedFileName = decodedName.Substring(decodedLastSlash); + var encodedFileName = encodedName.Substring(encodedLastSlash); var fileName = service.RandomName(renameMode).ToLowerInvariant(); if (decodedName.EndsWith(".BAML", StringComparison.OrdinalIgnoreCase)) @@ -78,8 +84,8 @@ public void PreRename(ConfuserContext context, INameService service, ProtectionP if (renameOk) { foreach (var bamlRef in references) { - bamlRef.Rename(module, decodedName, decodedNewName); - bamlRef.Rename(module, encodedName, encodedNewName); + bamlRef.Rename(module, decodedFileName, fileName); + bamlRef.Rename(module, encodedFileName, fileName); } doc.DocumentName = encodedNewName; } @@ -349,4 +355,4 @@ void AnalyzeResources(ConfuserContext context, INameService service, ModuleDefMD context.Annotations.Set(module, BAMLKey, wpfResInfo); } } -} +} \ No newline at end of file From 9518a33778abbc356b28337a636170a5154e0df9 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 22 Aug 2025 15:45:41 +0800 Subject: [PATCH 2/2] Update Confuser.Renamer/Analyzers/WPFAnalyzer.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- Confuser.Renamer/Analyzers/WPFAnalyzer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Confuser.Renamer/Analyzers/WPFAnalyzer.cs b/Confuser.Renamer/Analyzers/WPFAnalyzer.cs index 39f3f9f4f..7f0132165 100644 --- a/Confuser.Renamer/Analyzers/WPFAnalyzer.cs +++ b/Confuser.Renamer/Analyzers/WPFAnalyzer.cs @@ -61,7 +61,7 @@ public void PreRename(ConfuserContext context, INameService service, ProtectionP var encodedName = doc.DocumentName; if (bamlRefs.TryGetValue(decodedName, out var references)) { var decodedLastSlash = decodedName.LastIndexOf('/') + 1; - var encodedLastSlash = encodedName.LastIndexOf("/") + 1; + var encodedLastSlash = encodedName.LastIndexOf('/') + 1; var decodedDirectory = decodedName.Substring(0, decodedLastSlash); var encodedDirectory = encodedName.Substring(0, encodedLastSlash);