想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
7年前关闭。
Improve this question
我计划发布一种小型的,价格低廉的实用程序。由于这不是企业的业余爱好,因此我计划使用VS2008附带的Dotfuscator社区版。
有多好
我还可以使用“足够好的混淆器”的定义-Dotfuscator社区版缺少哪些功能才能使其变得足够好。
编辑:
我检查了商业混淆器数量的价格,价格昂贵。这值得么?
商业版本是否更好地防止了逆向工程?
我不是很害怕我的应用程序被破解(如果应用程序很糟糕以至于没有人对破解它感兴趣,这将令人失望)。无论如何,它并没有受到严格的保护,也没有在代码中的几个地方进行过于复杂的串行密钥和许可证检查。令我感到困惑的是,没有混淆,有人可以轻松地获取源代码,对其重命名并以自己的身份出售。
这会发生很多吗?
编辑2:
有人可以推荐商用混淆器。我发现它们很多,它们都很昂贵,有些甚至没有在网站上列出价格。
从功能上讲,所有产品看起来或多或少都相似。
混淆器应具有的最少功能集是什么?
最佳答案
简而言之,Dotfuscator社区版与其他“专业”版之间的主要区别在于,社区版只会真正混淆并更改您的 namespace ,方法名称以及类的其他“公共(public)”可访问方面。它不会深入研究函数本身,也不会混淆函数中的“私有(private)”代码。
另外,Community Edition不会做任何事情来混淆应用程序中的控制流之类的东西,也不会将代码从多个程序集中“组合”到一个程序集中。这些是“专业”付费版本中可用的功能。
通过查看以下两个链接,可以找到Community Edition(Visual Studio附带的“免费”版本)和“Professional”付费版本之间的最佳比较。
Preemptive Dotfuscator Editions Comparison
Dotfuscator Community Edition 3.0 on MSDN
MSDN链接稍有过时,但是,它为Dotfuscator的各个版本中提供的实际功能提供了更好的解释。
编辑:
商业混淆器确实要花费很多钱,至于它们是否值得呢?好吧,这是一个只有您才能做出的判断电话。就个人而言,我认为这在您的情况下不值得。首先,因为您只想保护一个应用程序(“我计划发布一个小型,价格低廉的实用程序。”),其次,您说您并不太担心应用程序被“破解”(“我”我不太害怕我的申请被破解。”)
我知道,编译后的.NET应用程序没有任何混淆,可以很容易地对其原始源代码进行反向工程,并且有人可以利用它来窃取您的软件并将其作为自己的软件出售,这会给您带来麻烦。事实仍然是软件盗版确实存在,您可能永远也不会停止盗版。
试图阻止软件盗版在这里(堆栈溢出)和整个互联网都引起了争论。
普遍的共识似乎是,您需要将时间和精力更多地投入到使产品达到最佳性能上,而不是同时利用这种时间来保护某种东西,因为只要有足够的时间/金钱,“攻击者”就可以“尽管您已尽最大努力阻止他这样做,但无论如何还是要破解”。
我想说这可能比您想像的要少得多。当然,软件会被破解,但是我认为没有太多人真正窃取他人的源代码并完全重新命名以自己出售。我并不是说这没有发生或没有发生,但这肯定不是普遍现象。
总而言之,我想说,最好的选择是将精力集中在使实用程序尽可能地强大上,并使用免费的Dotfuscator模糊处理程序,因为它只需要很少的时间/金钱投入,就可以最大程度地模糊代码明显地撬开眼睛,但不要因为任何人想破译/窃取您的产品/代码而严重失眠,他们就会这么做。
关于.net - Dotfuscator社区版的性能如何?什么是 “good enough obfuscator”? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2030136/