为了账号安全,请及时绑定邮箱和手机立即绑定

.NET混淆工具/策略

/ 猿问

.NET混淆工具/策略

呼啦一阵风 2019-07-05 10:34:40

.NET混淆工具/策略

我的产品有几个组件:ASP.NET、Windows窗体应用程序和Windows服务。95%左右的代码是用VB.NET编写的。

由于知识产权的原因,我需要混淆代码,直到现在,我一直在使用一个版本的dotfucator,现在已经超过5年了。我在想,是时候转向新一代的工具了。我正在寻找的是一个需求列表,当我搜索一个新的混淆器时,我应该考虑这些要求。

我知道到目前为止我应该找的是:

  • 序列化/反序列化

    ..在我目前的解决方案中,我只是告诉工具

    要混淆任何类数据成员,因为无法加载以前序列化过的数据所带来的痛苦实在太大了。
  • 与构建过程的集成

  • 使用ASP.NET

    ..在过去,我发现这个问题是由于更改了.dll名称(通常每页有一个名称)-并不是所有的工具都处理得很好。


查看完整描述

3 回答

?
天天世纪

回到.NET 1.1,混淆是必要的:反编译代码很容易,您可以从程序集到IL,再到C#代码,然后再编译一次。

现在有了.NET 3.5,我一点也不确定。尝试对3.5程序集进行反编译;您得到的离编译还有很长的路要走。

添加3.5中的优化(远远优于1.1),以及反射处理匿名类型、委托等的方式(它们是重新编译的噩梦)。添加lambda表达式,编译器‘魔术’,像Linq-语法和var,C#2函数,如yield(这将导致新类的名称不可读)。您的反编译代码最终离可编译还有很长的路要走。

一个拥有大量时间的专业团队仍然可以再次将其反向工程,但是对于任何混淆的代码也是如此。他们从中得到的代码将是不可维护的,并且很可能是非常错误的。

我建议对您的程序集进行密钥签名(也就是说,如果黑客能够重新编译一个程序集,他们必须重新编译所有程序集),但我认为混淆是不值得的。


查看完整回答
反对 回复 2019-07-05
?
一只斗牛犬

我们已经尝试过一些模糊处理方法。它们中没有一个在使用远程处理的大型客户机/服务器应用程序上工作。问题是客户机和服务器共享一些dll,而且我们还没有找到任何能够处理它的混淆器。

我们已经尝试过DotFuscatorPro、SmartAssembly、XenoCode、Salamander和几个名不见经传的小应用程序。

坦白说,我相信混淆是个大问题。

甚至它所处理的问题也不是一个真正的问题。你真正需要保护的是连接字符串,激活代码,安全敏感的东西。这种胡说八道的说法是,另一家公司将对你的整个代码库进行反向设计,并从中创造出一种竞争产品,这是一位偏执狂经理的噩梦,而不是现实。


查看完整回答
反对 回复 2019-07-05
?
慕莱坞5435954

我现在“膝盖深处”,试图找到一个好的解决方案。这是我到目前为止的印象。

Xenocode-我有一个用于混淆.NET 2.0程序集的旧的XenoCode 2005许可证。它在XP上运行良好,是一个不错的解决方案。我目前的项目是.NET 3.5,我在Vista上,支持让我试一试,但是2005年版本甚至不能在Vista(崩溃)上工作,所以我和现在我不得不以1900美元的高价购买“PostBuilder 2008”。这可能是一个很好的工具,但我不会发现。太贵了。

Reactor.Net-这是一个更有吸引力的价格点,对我的独立执行来说,效果很好。许可模块也很好,可以帮我节省很多精力。不幸的是,它缺少了一个关键的特性,那就是从混淆中排除东西的能力。这使得我不可能达到我所需要的结果(合并多个程序集,混淆一些,而不是混淆其他程序集)。

智能装配-我为此下载了Eval,它运行得完美无缺。我能够实现我想要的一切,接口是一流的。价格点仍然有点高。

Dotfucator Pro-在网站上找不到价格目前正在讨论得到报价。听起来不祥。

迷惑者-一个工作很好的开源项目(顾名思义,混淆ppl)。https://confuser.codeplex.com/ 
(由jgoffin增补)

注:据报道,ConfuerEx“坏了”第498期在他们的GitHub回购上。


查看完整回答
反对 回复 2019-07-05

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信