.NET混淆工具/策略

165

我的产品有几个组件:ASP.NET、Windows Forms App和Windows Service。约95%的代码都是用VB.NET编写的。

出于知识产权方面的原因,我需要混淆代码,直到现在我一直在使用一个5年以上的dotfuscator版本。我认为现在是时候转向新一代工具了。我正在寻找一个需求列表,在搜索新的混淆器时应该考虑哪些要素。

到目前为止,我知道我应该寻找以下内容:

  • 序列化/反序列化。在我的当前解决方案中,我只需告诉工具混淆任何类数据成员,因为无法加载以前序列化的数据所带来的痛苦太大了。
  • 与构建过程的集成
  • 处理ASP.NET。过去,由于更改.dll名称(您通常有每个页面一个),我发现这很棘手,不是所有工具都能很好地处理。

请参见:http://msdn.microsoft.com/zh-cn/vcsharp/aa336818.aspx#obfuscators - Michał Ziober
请参见Agile.net .NET混淆器,以获得混淆代码的另一种替代方案。特别要检查其代码虚拟化功能。 - sutton bernard
在 StackOverflow 上可以找到一份好的混淆器列表,从 ArmDot 到 Xenocode:https://dev59.com/questions/ynVD5IYBdhLWcg3wL4cA#60054 - Artem Razin
对于我们庞大而复杂的.NET应用程序,大多数.NET混淆器都失败了并引入了错误。.NET Reactor是唯一满足我们所有需求的混淆器。我花费了大量时间尝试了几十个混淆器,并在这里总结了我的发现https://blog.ndepend.com/in-the-jungle-of-net-obfuscator-tools/。 - Patrick from NDepend team
30个回答

1

有一个很好的开源版本叫 Obfuscar。似乎工作得很好。可以排除类型、属性、字段和方法。原始版本在这里: https://code.google.com/p/obfuscar/, 但由于似乎已经不再更新。


我今天看了一下这个 - 注意我的评论日期! - 它有点凌乱,需要花费一些时间才能开始。我还浪费了大约一个小时的时间,试图使用 .pfx 文件重新签名程序集。它抛出了一个难以理解、未记录的错误;似乎只能使用 .snk 进行签名。 - SteveCinq

1

这完全取决于你使用的编程语言。 阅读文章:混淆代码


1

我不确定我理解这里的负投票,为什么不给一个解释呢? - Russ Bradberry

1
我们在 Windows 客户端上使用 SmartAssembly。运作良好。 但是也会带来一些额外的问题。日志文件/异常中打印出类名需要进行反混淆。当然,也无法通过名称创建类。因此,最好查看您的客户端,并查看通过混淆可以解决哪些问题。

0

SmartAssembly很棒,我在大多数项目中都使用了它


0

您可能还想了解新的代码保护技术,例如MetaforicV.i.Labs以及新的软件复制保护技术,例如ByteShield。声明:我在ByteShield工作。


0

我也使用SmartAssembly。但是,我不知道它如何用于Web应用程序。然而,我想指出的是,如果您的应用程序使用共享软件类型的保护,请确保它不会使用布尔返回值检查许可证。这太容易被字节破解了。 http://blogs.compdj.com/post/Binary-hack-a-NET-executable.aspx


-1

混淆并不能真正保护你的代码。

如果你有一个.NET Exe文件,那么有一个更好的解决方案。

我使用Themida,可以告诉你它非常有效。

Themida唯一的缺点是无法保护.NET Dlls。(它也可以保护Exe和DLL中的C++代码)

Themida比这里提到的混淆器便宜得多,并且是市场上最好的反盗版保护。它创建了一个虚拟机,在其中运行你代码的关键部分,并运行几个线程来检测破解者设置的操纵或断点。它将.NET Exe转换成Reflector甚至无法识别为.NET程序集的东西。

请在他们的网站上阅读详细描述: http://www.oreans.com/themida_features.php


-1

我试过Eziriz的演示版本...我喜欢它。但是从来没有购买过这个软件。


社区如何将此作为维基答案? - ΦXocę 웃 Пepeúpa ツ

-2

我尝试过一个叫做Rummage的产品,它在给你一些控制方面做得很好...虽然它缺少Eziriz提供的许多功能,但是Rummage的价格太优惠了...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接