最安全的许可软件方式

时间:2009-08-13 23:19:28

标签: .net vb.net security licensing

许可软件的最佳和最安全的方法是什么?这样做是否有现有的计划?我想出售我的剧本,但我想确保用户不能自己重新分发或出售(当然,如果他们在自己的计算机上停用注册并选择转售,这是他们的选择)。

软件语言是VB.net。

由于我不确定我是否可以托管任何类型的注册数据库,有没有办法让许可证安全自给自足?我希望用户能够下载演示并能够以某种方式升级到完整版本。

感谢您的帮助!

如果目前还没有软件可以做到这一点,我将如何制作一个?

8 个答案:

答案 0 :(得分:7)

  

因为我不确定我是否   可以托管一个注册数据库   任何形式,有什么办法可以保留   liscensing安全自给自足?

不,没有办法安全地做到这一点。即使你有一个注册数据库,它也是可以破解的。

从演示中删除完整版本代码。如果您有少量买家,这可以大大减少泄漏的可能性。

如果您想进行复制保护,您应该开始阅读它。既然你在问这个问题,我可以说你需要花很长时间才能做出像样的复制保护。最好雇佣其他人为你做这件事。

.net混淆器可能是最简单,最有效的解决方案。

答案 1 :(得分:5)

如果你的软件足够理想并且做得好,人们会为此付出代价。你总是会有一个永远不会有的%。而不是浪费时间试图阻止它们,而是专注于改进产品。

99.9%的公司不想窃取某些东西,而是根据需要不改变您的软件。他们宁愿买一些开箱即用的东西。

请记住Fog Bugz from Fog Creek附带完整的源代码,并且在销售软件时没有问题,因为它是高质量的产品。

质量很重要,注重不安全。

答案 2 :(得分:3)

查看文章Developing for Software Protection and Licensing;它解释了如何选择解决方案,为什么要对应用程序进行模糊处理,并提供一些结构化代码的技巧,以便更难破解。

要记住的是,一旦您的应用程序在另一台计算机上运行,​​就没有100%保证阻止执行的方法。如果你小心的话,你能做的就是提高标准,以便更容易购买你的软件,而不是破解它。

强制性免责声明& plug:我共同创办的公司生产OffByZero Cobalt software licensing solution for .NET,它原生支持VB.NET。

答案 3 :(得分:2)

通常无法保护 .NET 软件不会破坏它。它太容易了(特别是使用Reflector)。因此,您需要执行一些步骤才能在某种程度上保护:

  1. 混淆代码(通常非常重要的任务,因为你不能混淆公开接口引用它们的公共接口)。
  2. 如果软件是开发组件,则可以使用内置的.NET许可(在Visual Studio中使用 .licx 文件)对其进行保护。一家公司帮助解决这个问题:http://www.infralution.com/
  3. 用户注册服务器(这不会防止破解,但会防止“非许可”使用)。
  4. 无论如何混淆是主要步骤,因为它是使.NET程序集更接近本机二进制文件的唯一一件事。

答案 4 :(得分:0)

不要打扰。如果用户确定足以转售您的脚本,那么您无法阻止它们。通过这样做,您可以限制可能出于非恶意原因调整脚本的用户。

答案 5 :(得分:0)

这不是许可问题的答案,但如果您担心潜在客户反编译您的程序集,那么您应该研究一下Obfuscation。

对您的发布版本执行模糊处理,它会大大修改应用程序中类,方法和字段的命名。如果用户尝试使用诸如Reflector之类的工具重新生成源代码,那么在尝试使代码编译或运行时会遇到很大的困难。

更新:回答Cyclone的评论:Dotfuscator可能是最知名的,因为它自2003年以来一直在Visual Studio中发布(我认为;不确定它是否仅限于特定的VS版本)。一些快速谷歌搜索在Visual Studio 2008中使用tutorial时出现了some alternative options。{/ 3>}。

答案 6 :(得分:0)

用.net?很难保护它。

最好的选择只是做一个琐碎的系统,并依靠人们的诚实。让实际购买软件的人轻松简单。

演示?省略下载代码。

基本上,不要太偏执......

答案 7 :(得分:0)

只有一种方法可以确保您的软件不会被盗版,并且大部分逻辑和/或通信都驻留在服务器上。即便如此,如果您的产品足够受欢迎,人们会尝试将您的服务器软件私下运行。