Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在已编译的DLL中编辑硬编码字符串?_C#_.net_Decompiling_Il - Fatal编程技术网

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

C# 如何在已编译的DLL中编辑硬编码字符串?,c#,.net,decompiling,il,C#,.net,Decompiling,Il,我有一个单一的编译dll,我需要改变一点。它是我半年前写的,但我已经丢失了源代码。其中只有一个硬编码字符串(它是一个文件名) 我需要将它从TestPage.html更改为TestPage1.html(不会太长) 怎么做?字符串是匿名的,对应的代码是: ... + folder + "TestPage.html" 没有分配给它的变量 提前谢谢 编辑:我不想在使用类似反射器的工具提取c代码后重新编译它 使用Reflector(或其他类似工具)将IL反编译为C#(或另一种CLR语言),然后-编辑并再

我有一个单一的编译dll,我需要改变一点。它是我半年前写的,但我已经丢失了源代码。其中只有一个硬编码字符串(它是一个文件名)

我需要将它从
TestPage.html
更改为
TestPage1.html
(不会太长)

怎么做?字符串是匿名的,对应的代码是:

... + folder + "TestPage.html"
没有分配给它的变量

提前谢谢

编辑:我不想在使用类似反射器的工具提取c代码后重新编译它

使用Reflector(或其他类似工具)将IL反编译为C#(或另一种CLR语言),然后-编辑并再次编译。

您可以使用免费工具从.NET dll文件中反编译代码和压缩源。

您可以使用,它提供了一个关于.NET程序集的原始视图。它还提供了查看甚至修改用户字符串流的可能性(请在
.NET目录>元数据流>#US
下找到它)


UserString流将字符串文本存储为您描述的文本。您应该能够使用find函数找到您的特定字符串并对其进行修改。但是,有一个限制:不能使用不同长度(更短或更长)的字符串。这将搞乱UserString流中随后出现的所有字符串的索引以及其他部分的所有偏移量。因此,不幸的是,我认为将其更改为
TestPage1.html
将不起作用,因为它长了一个字符。

我不能。它的代码是相当复杂的dll:里面有很多匿名函数、文件和分部类。@IlyaSmagin为什么不呢?即使你不能反编译到构建的C#代码,你也可以反编译到构建的IL。这对我的问题有什么帮助?如果你不想在提取C#代码后重新编译它,那么就反编译到IL-如果你不想重新编译,abatishchev给出的答案是正确的方法,你已经没有选择了。效果很好-我只是添加了一个空格(代码00),它解决了我的问题。