Skip to content

Commit 8cae43e

Browse files
mcpolo99ryanroeCopilot
authored
fix(renamer): fix WPF relative resource renaming (#30)
* fix WPF relative resource renaming * Update Confuser.Renamer/Analyzers/WPFAnalyzer.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Ryan <smbserv@qq.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 3178e2e commit 8cae43e

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

Confuser.Renamer/Analyzers/WPFAnalyzer.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,14 @@ public void PreRename(ConfuserContext context, INameService service, ProtectionP
6060
var decodedName = HttpUtility.UrlDecode(doc.DocumentName);
6161
var encodedName = doc.DocumentName;
6262
if (bamlRefs.TryGetValue(decodedName, out var references)) {
63-
var decodedDirectory = decodedName.Substring(0, decodedName.LastIndexOf('/') + 1);
64-
var encodedDirectory = encodedName.Substring(0, encodedName.LastIndexOf('/') + 1);
63+
var decodedLastSlash = decodedName.LastIndexOf('/') + 1;
64+
var encodedLastSlash = encodedName.LastIndexOf('/') + 1;
65+
66+
var decodedDirectory = decodedName.Substring(0, decodedLastSlash);
67+
var encodedDirectory = encodedName.Substring(0, encodedLastSlash);
68+
69+
var decodedFileName = decodedName.Substring(decodedLastSlash);
70+
var encodedFileName = encodedName.Substring(encodedLastSlash);
6571

6672
var fileName = service.RandomName(renameMode).ToLowerInvariant();
6773
if (decodedName.EndsWith(".BAML", StringComparison.OrdinalIgnoreCase))
@@ -78,8 +84,8 @@ public void PreRename(ConfuserContext context, INameService service, ProtectionP
7884

7985
if (renameOk) {
8086
foreach (var bamlRef in references) {
81-
bamlRef.Rename(module, decodedName, decodedNewName);
82-
bamlRef.Rename(module, encodedName, encodedNewName);
87+
bamlRef.Rename(module, decodedFileName, fileName);
88+
bamlRef.Rename(module, encodedFileName, fileName);
8389
}
8490
doc.DocumentName = encodedNewName;
8591
}
@@ -349,4 +355,4 @@ void AnalyzeResources(ConfuserContext context, INameService service, ModuleDefMD
349355
context.Annotations.Set(module, BAMLKey, wpfResInfo);
350356
}
351357
}
352-
}
358+
}

0 commit comments

Comments
 (0)