C# 如何安全地使用模糊器?

C# 如何安全地使用模糊器?,c#,.net,obfuscation,dotfuscator,C#,.net,Obfuscation,Dotfuscator,当我尝试在我的应用程序上使用dotfuscate时,我在运行它时会遇到一个应用程序错误。我遇到的大多数模糊处理问题都围绕着不能更改名称的类型,因为需要对它们进行一些反思(您的代码或运行时) 例如,如果您有一个用作web服务代理的类,则无法安全地混淆类名: public class MyWebServiceProxy : SoapHttpClientProtocol { } 另外,一些模糊处理程序不能处理泛型方法和类 诀窍是您需要找到这些类型,并防止混淆器重命名它们。这是通过模糊属性完成的:

当我尝试在我的应用程序上使用dotfuscate时,我在运行它时会遇到一个应用程序错误。

我遇到的大多数模糊处理问题都围绕着不能更改名称的类型,因为需要对它们进行一些反思(您的代码或运行时)

例如,如果您有一个用作web服务代理的类,则无法安全地混淆类名:

public class MyWebServiceProxy : SoapHttpClientProtocol
{

}
另外,一些模糊处理程序不能处理泛型方法和类

诀窍是您需要找到这些类型,并防止混淆器重命名它们。这是通过模糊属性完成的:

[global::System.Reflection.Obfuscation(Exclude=true, Feature="renaming")]
Dotfuscator(以及所有模糊处理程序)在应用程序上运行通常是安全的,但它们偶尔会导致问题。没有问题的具体细节,很难诊断


然而,混淆器的一个常见问题是当您将它们与反射混合时。由于更改的是类型名称,而不是字符串,因此每当您尝试对具有特定字符串名称的对象进行反射,并使用反射名称空间来构造对象时,您可能会遇到问题。

模糊处理程序可能会出现问题的另一个问题是使用BinaryFormatter进行序列化,因为它会更改字段名称。出于这个原因,我有一些用户在他们的模糊代码上使用序列化功能。

你能告诉我们错误是什么吗?不要把手指伸进模糊器,除非你需要一个肾脏。我只是好奇——但为什么要投否决票?很高兴知道为什么人们不同意。。。