我有一个已编译的 dll,我需要稍微更改一下。半年前写的,源码丢了。其中有一个硬编码字符串(它是一个文件名)
我需要将它从 TestPage.html
更改为 TestPage1.html
(不会太长)
怎么做?字符串是匿名的,对应的代码是:
... + folder + "TestPage.html"
没有分配给它的变量。
提前致谢。
编辑:我不想在使用类似 Reflector 的工具提取 C# 代码后重新编译它!
最佳答案
你可以使用 CFF Explorer ,它提供了有关 .NET 程序集的非常原始的 View 。它还提供了查看甚至修改 UserString 流的可能性(在 .NET Directory > MetaData Streams > #US
下找到它)。
UserString-stream 将字符串文字存储为您描述的字符串文字。您应该能够使用查找功能找到您的特定字符串并对其进行修改。但是,有一个限制:您不能使用不同长度(更短或更长)的字符串。这会弄乱随后在 UserString 流中所有字符串的索引以及其他部分的所有偏移量。所以,不幸的是,我认为将它更改为 TestPage1.html
是行不通的,因为它长了一个字符。
关于c# - 如何在已编译的 DLL 中编辑硬编码字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7566843/