一尘不染

如何保护.NET程序集免于反编译?

c#

如果我在开始使用C#时学到的第一件事是最重要的。您可以使用Reflector或其他工具反编译任何.NET程序集。许多开发人员并不了解这一事实,当我向他们展示其源代码时,他们中的大多数人都感到震惊。

防止反编译仍然是一项艰巨的任务。我仍在寻找一种快速,简便且安全的方法来进行此操作。我不想混淆我的代码,所以我的方法名称将是a,b,c左右。Reflector或其他工具应该完全无法将我的应用程序识别为.NET程序集。我已经知道一些工具,但是它们非常昂贵。还有其他方法可以保护我的应用程序吗?

编辑:

我提出这个问题的原因不是为了防止盗版。我只想阻止竞争对手阅读我的代码。我知道他们会而且他们已经做到了。他们甚至告诉我。也许我有点偏执,但是商业竞争对手阅读我的代码并不能使我感觉良好。


阅读 579

收藏
2020-05-19

共1个答案

一尘不染

要记住的一件事是,您要以一种有意义的方式来执行此操作。为此,您需要定义目标。那么,您的目标到底是什么?

防止盗版?这个目标是无法实现的。甚至本机代码也可以反编译或破解;在线提供的众多警告(甚至适用于Windows和Photoshop之类的产品)也证明了坚定的黑客可以始终获得访问权限。

如果您无法防止盗版,那么仅减少盗版又如何呢?这也被误导了。只需要一个人破解您的代码,它就可以提供给所有人。你每次都要幸运。海盗只需要幸运一次。

我告诉你 的目标应该是最大化利润。 您似乎认为,为此目的必须制止盗版。它不是。利润就是收入减去成本。 停止盗版会 增加
成本
。这很费力,这意味着在过程中的某个地方增加了成本,因此减少了等式的那一部分。 保护您的产品也无法增加您的收入。
我知道您会看到所有这些海盗,并且看到只有他们愿意支付许可费才能赚到的所有钱,但现实是,这 永远不会
发生。这里有些夸张,但通常认为无法破解您的安全性的盗版者会找到他们可以破解的同类产品,或者无法破解。他们将 永远不会 买它来代替,因此,他们也 没有
代表销售损失。

此外, 保护您的产品实际上 会减少
收入
。有两个原因。一个是一小部分客户,他们在激活或安全方面遇到问题,因此决定不再次购买或索取退款。另一个是一小部分人实际尝试使用盗版软件以确保其在购买前能正常工作。限制产品的盗版分发(
如果
您能够以某种方式成功做到这一点)会阻止这些人尝试您的产品,因此他们将永远不会购买。此外,盗版还可以帮助您的产品传播到更广泛的受众,从而吸引更多愿意为此付费的人。

更好的策略是假设您的产品将被盗版,并考虑利用这种情况的方法。关于该主题的更多链接:
我如何防止代码被盗?
保护.NET应用程序

2020-05-19