我打算要释放一个小型低价的效用。由于这是更多的爱好于商,我计划使用Dotfuscator社会版,附带VS2008.

如何是好呢?

我还可以使用定义的"良好足够的混淆"-什么样的功能缺失,从Dotfuscator社会版,以使它够好。

编辑:

我检查价格数的商业obfuscators和他们花费了很多。是的它值得吗?

是的商业版本更好地保护从反向工程?

我不是很怕我的程序被破解(这将是令人失望的,如果申请是如此糟糕,没有人有兴趣开裂)。这不是严重的保护,无论如何,不过于复杂序的关键和许可证检查的几个地方中的代码。它只是错误我,没有混淆,有人可以很容易地获得源代码,重新命名它,并把它卖作为其自己的。

这不会发生了很多吗?

编辑2:

可以有人建议商业混淆。我发现他们很多人,它们都是昂贵的,有些甚至没有价格上列出的网站。

特征明智的,所有的产品似乎或多或少是相似的。

什么是最小的设置的特征的混淆,应该有吗?

有帮助吗?

解决方案

在简单地说,Dotfuscator社区版和其他“专业”版本之间的主要区别在于,社区版将只有真正混淆和改变你的命名空间,方法名,和你的类的其他“公共”访问方面。它不会深入到函数本身和在函数内混淆“私有”的代码。

此外,社区版没有做任何事情来混淆这样的事情作为你的应用程序中的控制流,也不会“合并”,从多个组件的代码在一个组件。这些都是可用之内“专业化”的付费版本。

特点

在社区版(随Visual Studio中的“免费”版本)和“专业”,付费版本之间的最佳对比可以通过查看以下两个链接中找到:

抢先Dotfuscator的版本比较

Dotfuscator的上MSDN 社区版3.0

在MSDN链路稍微过时,然而,给出的实际功能,是Dotfuscator的的各种版本中提供一个更好的解释。

修改

商业混淆器做耗费了大量的金钱,并为它们是否是值得的钱吗?嗯,这是一个主观判断,真正只有你自己才能。就个人而言,我会说这是不值得你的场景。首先,因为你只想要保护一个应用程序(“我打算发布一个小型,低价的效用。”);第二,你说,你是不是过分关注应用程序被“破解”(“我中号不是很害怕被破解我的申请“)。

我明白它如何能够打扰你已编译的.NET应用程序,没有任何模糊处理,可以很容易地逆向工程到原来的源代码,有人可能会利用此窃取软件并出售它作为自己的,然而,事实仍然是软件盗版确实存在,你可能永远不会停止。

试图阻止软件盗版一直争论不休广告nausem都在这里(堆栈溢出),并在互联网上。

普遍的共识似乎是,你需要关注你的时间和精力更使你的产品是伟大的,因为它可以,而不是使用此同一时间试图保护的东西,只要有足够的时间/金钱,一个“攻击“可以‘破解’/反正偷你的软件,尽管阻止他这样做了最大的努力。

  

这是否发生了很多?

我会说,它可能会发生少了很多比你想象的那样。当然,软件被破解,但我不认为太多的人居然偷对方的源代码和完全重新品牌它卖掉作为自己。我不是说没有,或者还没有发生,但它肯定不是一个普遍的现象。

要总结,我想说的是你最好的选择是专注于使您的效用一样大,它可以和使用免费Dotfuscator的混淆,因为它需要大量的时间/金钱的投资很少,混淆你的代码从最明显的窥视的眼睛,但不要失去任何睡眠过度的事实,如果有人想破解/偷你的产品/代码严重的是,他们会做的。

其他提示

我觉得随Visual Studio的Dotfuscator社区版是一个相当幼稚的解决方案。它仅提供符号重命名和不模糊控制流的。如果有人决定偷了你的代码,它将只需要重构回所有名称,这与类少量很容易的。

您也可以依靠通过反射提供的不是那么完美反编译(通常混乱切换块,使得大量的goto方法的,不匹配的if-else块,等等)。

不过,我建议你尝试 Eziriz .NET反应堆。它的成本只是179 $(据我所知最好的价格/功能比)。它提供了标准混淆技术如符号重命名,串加密,控制流混淆。作为一个良好的奖金就为您创建本机启动的应用程序,其中将包含您的主要部件和所有第三方引用加密,并按需加载。再加上它提供了一些许可的能力。

反正倒车.NET应用程序没有这么辛苦,我这么做是为了乐趣,可以说,这只是一个时间和钱的问题(当然常识)的速度有多快你的申请将被破解或反转。

至少混淆,应有:

  1. 串密
  2. 符号重新命名
  3. 控制流模糊

好的有的特点是:

  1. 资源保护
  2. 大会融合/嵌入
  3. 外部呼叫的方法隐藏
  4. 能够自动迹象的模糊的组件
  5. 支持用于卫星组件
  6. 死亡代码消除
  7. 元数据的减少
  8. 抗反编译器(反射镜)
  9. 防篡改
  10. 反调试

看看我们的 密码混淆 产物,它支持所有这些。

要避开逆向工程代码另一种方法是,你把你的DLL,如果你不能真正买得起的混淆器里面做添加支持。而在你assembies部署之前告诉编译器到哪里寻找他们这是一个古老的做法阻碍逆向工程。 但是,就像是已经说了,主要集中在开发一个优质的产品和良好的编码习惯,那么你将能够在未来提供一个很好的混淆应用。 另外,尽量不要担心得多别人破解你的代码,因为大多数黑客破解代码只是找到一种方法,使用该产品而无需为它付出,而不是窃取代码或从程序员开始学习。是的,我希望JIT只支持C#和vb.net这将真正削减逆向工程,但由于JIT可以读很多由于.NET是真正的语言友好的就是价格。 所以代码路程,赚了一些钱,买一些额外的证券。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top