首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Dotfuscator社区版有多好?什么是“足够好的混淆器”?

Dotfuscator社区版有多好?什么是“足够好的混淆器”?
EN

Stack Overflow用户
提问于 2010-01-09 03:27:45
回答 4查看 41.4K关注 0票数 58

我计划发布一个小的,低价的实用工具。由于这与其说是业务,不如说是爱好,我计划使用VS2008附带的Dotfuscator Community Edition。

它有多好?

我还可以使用“足够好的混淆器”的定义- Dotfuscator社区版缺少什么功能才能让它足够好。

编辑:

我检查了一些商业混淆器的价格,他们的成本很高。值得吗?

商业版本真的能更好地防止反向工程吗?

我不是很害怕我的应用程序被破解(如果应用程序如此糟糕,以至于没有人有兴趣破解它,那将是令人失望的)。它没有受到严格的保护,不会在代码中的几个地方进行过于复杂的序列密钥和许可证检查。它只是让我感到困扰,因为没有混淆,有人可以很容易地获得源代码,重新标记它,并将其作为自己的代码出售。

这种情况经常发生吗?

编辑2:

有没有人推荐商业混淆器。我发现了很多,它们都很贵,有些甚至在网站上没有标价。

从功能上讲,所有的产品看起来都差不多。

模糊处理器应该具备的最小特征集是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-09 03:43:36

简而言之,Dotfuscator Community Edition与其他“专业”版本之间的主要区别在于,Community Edition只会混淆和更改您的命名空间、方法名称以及类的其他“公共”可访问方面。它不会深入研究函数本身,也不会混淆函数中的“私有”代码。

此外,Community Edition不会做任何事情来混淆应用程序中的控制流,也不会将来自多个程序集的代码“组合”到一个程序集中。这些是“专业”付费版本中提供的功能。

通过查看以下两个链接,可以找到Community Edition ( Visual Studio附带的“免费”版本)和“专业”付费版本之间的最佳比较:

Preemptive Dotfuscator Editions Comparison

Dotfuscator Community Edition 3.0 on MSDN

然而,MSDN链接略显过时,它更好地解释了Dotfuscator各个版本中可用的实际功能。

编辑:

商业混淆器确实要花很多钱,至于他们值不值钱?好吧,这是一个只有你能做出的判断。就我个人而言,我会说这在你的场景中是不值得的。首先,因为您只想保护一个应用程序(“我计划发布一个小的、低价的实用程序”)。其次,您说您并不太担心应用程序被“破解”(“我不是很害怕我的应用程序被破解”)。

我知道编译的.NET应用程序,没有任何混淆,可以很容易地被反向工程到它们的原始源代码,并且有人可能利用这一点来窃取您的软件并将其作为自己的软件出售,这会给您带来多大的困扰,然而,事实仍然是,软件盗版是存在的,您可能永远不会停止盗版。

试图阻止软件盗版在这里(Stack Overflow)和整个互联网上都有争论。

普遍的共识似乎是,你需要把你的时间和精力更多地集中在让你的产品尽可能好,而不是利用这段时间试图保护一些东西,只要有足够的时间/金钱,“攻击者”无论如何都可以“破解”你的软件,尽管你尽了最大的努力阻止他这样做。

这种情况经常发生吗?

我会说它的发生可能比你想象的要少得多。当然,软件会被破解,但我不认为有太多人真的会窃取别人的源代码,并将其完全重新标记为自己的代码来出售。我并不是说它没有发生,或者没有发生过,但它肯定不是一种常见的情况。

总而言之,我要说的是,你最好的选择是专注于让你的实用工具尽可能地强大,并使用免费的Dotfuscator obfuscator,因为它只需要很少的时间/金钱投资,可以从最明显的窥探眼睛中混淆你的代码,但不要因为有人想破解/窃取你的产品/代码而睡不着觉。

票数 51
EN

Stack Overflow用户

发布于 2010-02-11 17:12:37

我认为Visual Studio附带的Dotfuscator Community Edition是一个相当幼稚的解决方案。它只提供符号重命名,根本不混淆控制流。如果有人决定窃取你的代码,它将只需要重构所有的名称,这对于少量的类来说是非常容易的。

你也可以依赖Reflector提供的不那么完美的反编译(它通常会弄乱开关块,做很多goto,不匹配if-else块,等等)。

但我建议你试试Eziriz .NET Reactor。它只需要179美元(AFAIK最好的价格/功能比)。它提供了标准的混淆技术,如符号重命名、字符串加密、控制流混淆等。作为一个很好的奖励,它为你的应用程序创建了本地启动器,它将包含你的主程序集和所有第三方引用,并按需加密和加载。此外,它还提供了一些许可功能。

无论如何,反向.NET应用程序并不是那么难,我这么做只是为了好玩,我可以说这只是时间和金钱(当然还有常识)的问题,你的应用程序被破解或反向的速度有多快。

票数 13
EN

Stack Overflow用户

发布于 2010-05-18 13:34:31

至少,一个混淆器应该有:

flow模糊String encryption

  • Symbol renaming

  • Control flow

最好的特性是:

为卫星protection

  • Assembly merging/embedding

  • External自动签名模糊assemblies

  • Support的
  1. 资源protection
  2. Assembly merging/embedding
  3. External方法调用hiding
  4. Ability

看看我们的Crypto Obfuscator产品,它支持所有这些。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2030136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档