当我开始使用C#时,我学到的第一件事是最重要的。您可以使用Reflector或其他工具反编译任何.NET程序集。许多开发人员没有意识到这一点,当我向他们展示他们的源代码时,他们中的大多数人都感到震惊。
防止反编译仍然是一项艰巨的任务。我仍然在寻找一种快速,简单和安全的方式来做到这一点。我不想混淆我的代码,所以我的方法名将是a、b、c等等。Reflector或其他工具应该根本无法将我的应用程序识别为.NET程序集。我已经知道了一些工具,但它们非常昂贵。有没有其他方法来保护我的应用程序?
编辑:
我提出这个问题的原因不是为了防止盗版。我只想阻止竞争对手阅读我的代码。我知道他们会的,而且他们已经这么做了。他们甚至这样告诉我。也许我有点多疑,但商业竞争对手阅读我的代码并不会让我感觉良好。
发布于 2010-03-19 23:02:47
在这里的工作中,我们使用来自PreEmptive解决方案的Dotfuscator。
虽然保护.NET程序集是不可能的,但我认为100%的Dotfuscator已经足够难了。我带来了很多混淆技术;
交叉程序集重命名
重命名方案
重命名前缀
增强的过载归纳
增量混淆
HTML重命名报告
控制流
字符串加密
事实证明,它们对小公司来说并不是很昂贵。他们对小公司有特别的定价。
(不,我不为PreEmptive工作;-)
当然,也有freeware的替代品;
发布于 2010-03-19 22:59:32
在任何云服务提供商中托管您的服务。
发布于 2010-03-19 22:59:06
How to preventing decompilation of any C# application
这很好地描述了整个情况。
在某些情况下,必须将代码转换为VM字节码,然后用户才能获得它。
机器代码也没有太大的不同。像IDA Pro这样好的交互式反汇编/调试器可以使任何本机应用程序变得透明。调试器足够智能,可以使用AI来识别常见的AI、编译器优化等。它允许用户从机器代码生成的程序集中精心地重新构建更高级别的构造。
而且IDA Pro在某种程度上也支持.Net。
老实说,在做了几年的反向工程(为了兼容性)项目之后,我从我的经验中得到的主要东西是,我可能不应该太担心别人窃取我的代码。如果有人想要它,无论我实施什么方案,都不会很难得到它。
https://stackoverflow.com/questions/2478230
复制相似问题