我的产品有几个组件:ASP.NET,Windows Forms App和Windows Service.95%左右的代码是用VB.NET编写的.
出于知识产权的原因,我需要对代码进行模糊处理,直到现在我一直在使用现已超过5年的dotfuscator版本.我认为现在是时候转向新一代工具了.我正在寻找的是在搜索新的混淆器时我应该考虑的一系列要求.
我知道到目前为止我应该寻找的东西:
我相信SO上的很多读者都使用Lutz Roeder的.NET反射器来反编译他们的.NET代码.我很惊讶我们的源代码可以从编译的程序集中重新编译.
我有兴趣听听你们中有多少人使用混淆,以及使用什么类型的产品?
我确信这是一个更重要的问题,例如,您提供的通过互联网下载的.NET应用程序,而不是针对特定客户端定制的内容.
对于我们的软件,我们使用硬件加密狗来保护软件.没有保护是完美的,但这种商业解决方案是负担得起的,并保持诚实的人诚实(如另一个线程中所述).优点是128位密钥在硬件加密狗上存储"不可读".
我们想要删除此硬件加密狗并开始使用软件保护.基本上我们可以使用商业产品,但另一方面也不会破坏.我对加密知之甚少,这就是我发布这个的原因.如何在Windows计算机上存储无法使用Reflector或其他内容读取的密钥?但是,我应该能够访问用于测试许可证代码的密钥.
我只想要一个简单的解决方案,只需使用Reflector就无法攻击.
或者我问一个非常愚蠢的问题?
谢谢大家的快速和有用的回复.我不想在互联网上使用许可,因为应用程序并不总是在连接的计算机上运行.然后我会得到更多问题然后解决它们.我们现在很可能会寻求商业解决方案.似乎保护不是那么微不足道.
非常感谢!!
有没有人知道Perl的优秀代码选择器?在将其发布给客户之前,我会被要求查看阻止代码的选项.我知道封闭式代码仍然可以进行逆向工程,但这不是我们主要关注的问题.
有些客户对我们提供给他们的源代码做了一些小改动,当出现问题我们必须修复它时,或者当我们发布一个与他们改变的内容不兼容的补丁时,它会给我们带来噩梦.因此,目的只是为了使它们很难对代码进行自己的更改(无论如何它们都不应该这样做).