【问题标题】:Is there any program that obfuscates C# source code? [closed]有没有混淆 C# 源代码的程序? [关闭]
【发布时间】:2021-11-08 20:41:58
【问题描述】:

我们的要求是能够将我们的 DLL 与 ClickOnce 集成。 Dotfuscator 很好地完成了混淆工作,但混淆的 DLL 无法在客户端使用 ClickOnce 进行部署。在我们这边,我们可以完美地处理它。此外,混淆程序集有时会使我们的 .NET CF 应用程序崩溃。结果是一个解决方案,它创建一个临时源并在使用 VS 编译之前对其进行混淆。这确保了编译后的程序集可以与 ClickOnce 集成并与 .NET CF 完全兼容。混淆 C# 源代码(不是程序集)的最佳工具是什么?

【问题讨论】:

  • 只需将您的代码外包给印度的某个承包商即可。你很快就会把它弄糊涂:)
  • 事实上,我们正在用 VC++ 开发一个内部的 C# 源代码混淆器。它允许我们排除具有属性的类和枚举。很好的结果是混淆的源代码可以用VS正常编译,因此DLL与ClickOnce高度兼容。

标签: c# .net compiler-construction compact-framework obfuscation


【解决方案1】:

{SmartAssembly} - 简单、高效、出色,而且不仅仅是混淆功能。

我们目前将它与ClickOnce 一起使用,它支持Compact Framework - 您只需添加一个后期构建脚本即可。它还具有不同级别的安全性,因此您只需反复试验即可获得最兼容的保护级别。

【讨论】:

  • +1 虽然我不使用它,但他们在我工作的地方使用它并且对它感到满意
  • 我想我需要把情况解释清楚。我们编译的 DLL 需要经过混淆处理并发送给我们的客户。在客户方面,他们可能希望将我们的 DLL 与他们的产品集成并使用 ClickOnce 工具进行部署。问题是我们在市场上尝试过的所有混淆器工具的混淆 DLL 都与 CLickOnce 不兼容。您的解决方案是针对您的,而不是针对客户的。
  • @mark - 谁部署 ClickOnce 应用程序?
  • 我们的客户部署它。
  • @Mark - 那么没有区别。您可以排除某些签名进行混淆,以便人们可以使用您的库,然后 ClickOnce 只需部署已经混淆的库。
【解决方案2】:

在大多数情况下,如果您问这个问题,那么您使用的是错误的语言(和框架)。许多使 .NET 强大的东西都与混淆不兼容,因此您不妨使用本机 C++。

ClickOnce 可能是一个例外,但我认为它仍然会严重限制您可以使用的混淆级别。

如果您真的想保护您的 IP,您应该托管一个 Web 服务,这样您的专有代码就不会离开您的计算机。一旦你的代码在别人的 CPU 上运行,你就输掉了隐藏它的战斗。

【讨论】:

    【解决方案3】:

    查看我公司的SD C# Obfuscator

    【讨论】:

    • 它不允许我下载!
    • @markattwood:向 SD 发送说明,要求提供评估版本。
    • 他们实际上甚至混淆了 System.Collection 命名空间,这不是我们想要的。
    • SD 混淆器只会混淆您要求它处理的名称。如果您想不混淆系统集合命名空间成员名称,这很容易做到。
    • @BenVoigt:感谢您注意到这一点。我已经根据 SO 政策规则对其进行了修补。您会注意到这是一个非常早的答案,在政策制定之前。我试图回去修改我所有的旧答案,有些我错过了。感谢您(是的,我记得)的积极支持。在你删除你的笔记后,我会删除它。
    【解决方案4】:

    你不需要混淆源代码,你只需要一个支持 ClickOnce 的程序集混淆器。 Crypto Obfuscator 支持这一点 - 它在构建过程中执行混淆,因此最终位于 ClickOnce 清单和设置中的程序集已经被混淆。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-01
      • 2013-06-09
      • 2014-09-24
      • 2010-09-18
      相关资源
      最近更新 更多