c# - 如何在已编译的 DLL 中编辑硬编码字符串?

标签 c# .net decompiling il

我有一个已编译的 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/

相关文章:

c# - 如何将 GameLift 与 Unity3d 集成作为游戏客户端

c# - 在这种情况下如何调用 ICommand.CanExecute?

ios - 从解密的 iOS 应用程序可执行文件中查找常量

c# - C# 中 2 个集合之间的交集

c# - 如何禁用 VS datagridview 中的第一个自动选择?

c# - PDFsharp 找不到图像(找不到图像)

c# - 将 double 转换为具有 N 位小数、点作为小数点分隔符且没有千位分隔符的字符串

.net - Windows Azure 中的 ASP.net 应用程序部署

java - 字节码序列反编译

c# - aspx.cs 和 aspx.designer.cs 在哪里