简而言之,Dotfuscator Community Edition 与其他“专业”版本之间的主要区别在于,Community Edition 只会真正混淆和更改您的命名空间、方法名称以及类的其他“公共”可访问方面。它不会深入研究函数本身并混淆函数中的“私有”代码。
此外,Community Edition 不会对应用程序中的控制流等内容进行混淆处理,也不会将来自多个程序集的代码“组合”到一个程序集中。这些是“专业”付费版本中可用的功能。
社区版(Visual Studio 附带的“免费”版本)和“专业”付费版本之间的最佳比较可以通过查看以下两个链接找到:
抢先式 Dotfuscator 版本比较
MSDN 上的 Dotfuscator 社区版 3.0
MSDN 链接有点过时,但是,它对 Dotfuscator 的各个版本中可用的实际功能提供了更好的解释。
编辑:
商业混淆器确实要花很多钱,至于它们是否物有所值?嗯,这是一个只有你才能做出的判断。就个人而言,我会说在您的情况下不值得。首先,因为您只想保护一个应用程序(“我计划发布一个小型、低价实用程序。”),其次,您说您不太担心应用程序被“破解”(“我”我不太害怕我的应用程序被破解。”)。
我知道编译的 .NET 应用程序可以很容易地逆向工程到其原始源代码,并且有人可能会利用它来窃取您的软件并将其作为自己的软件出售,这会如何困扰您。事实上,软件盗版确实存在,你可能永远不会阻止它。
试图阻止软件盗版在此处(Stack Overflow)和整个互联网上都引起了激烈的争论。
普遍的共识似乎是,您需要将时间和精力更多地集中在使您的产品尽可能出色上,而不是利用同一时间试图保护某些东西,只要有足够的时间/金钱,“攻击者”就可以“破解”/窃取您的软件,尽管您已尽最大努力阻止他这样做。
这种情况经常发生吗?
我会说它的发生可能比你想象的要少得多。当然,软件会被破解,但我认为实际上并没有太多人窃取他人的源代码并完全重新命名它以作为自己的出售。我并不是说它没有发生,或者没有发生,但这肯定不是常见的情况。
总而言之,我想说你最好的选择是专注于让你的实用程序尽可能好,并使用免费的 Dotfuscator 混淆器,因为它只需要很少的时间/金钱投资,就可以从最明显的窥探,但不要因为如果有人想破解/窃取您的产品/代码足够严重,他们会这样做的事实而睡不着觉。