【发布时间】:2011-01-29 12:16:21
【问题描述】:
如果我开始使用 C# 时学到的第一件事是最重要的。您可以使用 Reflector 或其他工具反编译任何 .NET 程序集。许多开发人员没有意识到这一事实,当我向他们展示他们的源代码时,他们中的大多数人都感到震惊。
防止反编译仍然是一项艰巨的任务。我仍在寻找一种快速、简单和安全的方法来做到这一点。我不想混淆我的代码,所以我的方法名称将是 a、b、c 左右。反射器或其他工具应该根本无法将我的应用程序识别为 .NET 程序集。我已经知道一些工具,但它们非常昂贵。还有其他方法可以保护我的应用程序吗?
编辑:
我的问题不是为了防止盗版。我只想阻止竞争对手阅读我的代码。我知道他们会而且他们已经做到了。他们甚至这样告诉我。 也许我有点偏执,但阅读我的代码的商业竞争对手并没有让我感觉良好。
【问题讨论】:
-
如果反射器无法判断您的应用程序是否是 .NET 程序集,那么应用程序如何尝试加载它应该这样做?
-
Re“我不想混淆我的代码,所以我的方法名称将是 a、b、c 左右。”为什么不?这是显而易见的事情,可以让竞争对手更难理解你的逻辑。
-
是的,混淆 100%“有效”。首先,您不应该将“秘密”放入代码中,“一旦在代码中发现会危及安全性”的东西。其次,您是否曾经在 GitHub 上获取代码并尝试重新利用它?我的意思是,由于使用的范式、类耦合、模糊的类职责、依赖项、回调项等,即使是非混淆代码也可能无法重新调整用途。这意味着,您的混淆代码是完全安全的,直到我们让机器人程序员能够理解编程逻辑并快速重写/重构代码,这不会很快发生。
标签: c# .net decompiling reflector