有可能混淆原始C#源代码吗?

有可能混淆原始C#源代码吗?,c#,C#,我见过许多C#模糊处理器,它们都需要一个程序集(.exe、.dll等) 为什么不能混淆源代码?就像您可以使用javascript一样,例如:混淆源代码没有任何意义。这是因为源代码是为了维护或经验共享而共享的。这就是为什么模糊处理针对可部署工件,如exe或dll 在JavaScript的情况下,代码本身是可部署的工件,因此对于JavaScript来说,它对于知识产权保护有着完美的意义。您混淆了您向客户发布的内容,而不是您必须保持清晰以便维护的内容 释放javascript文件,对其进行模糊处理(并

我见过许多C#模糊处理器,它们都需要一个程序集(.exe、.dll等)
为什么不能混淆源代码?就像您可以使用javascript一样,例如:

混淆源代码没有任何意义。这是因为源代码是为了维护或经验共享而共享的。这就是为什么模糊处理针对可部署工件,如
exe
dll


JavaScript
的情况下,代码本身是可部署的工件,因此对于
JavaScript
来说,它对于知识产权保护有着完美的意义。

您混淆了您向客户发布的内容,而不是您必须保持清晰以便维护的内容

释放javascript文件,对其进行模糊处理(并保留未模糊处理的文件以维护应用程序)。因此,您有两组javascript文件:源文件和发布文件。如果有一个不同的已发布编译格式,这可能是混淆目标

您发布的是.class文件,而不是.java文件,因此您混淆了.class

您发布的是exe,而不是c或c#文件,因此会混淆exe

其他具体原因:

  • C或C#文件(或java)可用于不同的应用程序。根据应用程序的不同,可以剥离或更改的内容也会有所不同
  • C、C#或java文件包含编译所需的项,这些项不能仅在一个文件中剥离:必须对整个集合进行模糊处理(例如,如果重命名类或可见字段,则在模糊处理时通常在内存中维护一个表)

    • 我同意@dystroy的观点,因为你混淆了你发布的内容

      但是为了直接回答提出的问题——b/c很少有人发布c代码

      如果您需要发布C#代码,并且希望将其混淆,我建议您使用以下两种方法:

    • 使“内部”所有不需要“公共”的类型
    • 编译包含要发布的源代码的程序集
    • 使用RedGate SmartAssembly模糊该程序集
    • 使用JetBrains dotPeek显示模糊的源代码,并转储到 磁盘
    • 压缩模糊的源代码并发布它

    • 我知道至少有两个人可以轻松地完成这项工作!既然你可以。。。根本不给他们…为什么不可能?这显然是可能的。只是没有产品可以做到这一点。这里没有真正的问题,挑战这个问题是没有意义的。这可能是一个学术问题。并非每件事都有商业理由。