【问题标题】:What's the best approach to Protect Custom .NET Components with License? [closed]使用许可证保护自定义 .NET 组件的最佳方法是什么? [关闭]
【发布时间】:2009-03-31 14:29:42
【问题描述】:

授权自定义 .NET 组件或应用程序进行销售的最佳方法是什么?

  • 封闭源代码
  • 2 许可模式:
    • 试用有限功能许可证(免费)
    • 功能齐全

【问题讨论】:

  • 作为licens_er_还是licens_ee_?
  • 你是卖组件的,我知道吗?如果审判到处蔓延,你介意吗?您想阻止版权法已经阻止的任何事情吗?关于如何使用它们有什么具体或奇怪的地方吗?

标签: c# licensing


【解决方案1】:

对于“封闭源代码”场景,请考虑使用混淆。我一直在使用SmartAssembly,对结果非常满意。

关于许可模式。您说的是 .net 组件,因此目标受众是开发人员。我认为他们不会处理免费的有限试用。如果您要向开发者社区出售有价值的东西,请准备好在 Rapidshare 或 torrent 上查看“全功能”版本。

我建议专注于支持和频繁的更新/增强,而不是保护。在大多数情况下,“业务”购买支持而不是二进制文件。

如果您需要一些工具名称,为什么不直接在 Google 上搜索呢? “.net 许可”查询将为您提供各种链接。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    这里有很多缺失的细节。

    您是从某人那里获得许可还是尝试创建许可?

    开源、闭源、销售?如果卖,你提供货源吗?

    组件/应用程序的最终用途是什么?您是托管它(如多租户网站)还是更多 COTS?

    您的竞争对手对他们的销售模式做了什么?它似乎对他们有用吗?例如听起来合理吗?

    当您回答这些问题时,您会找到适合您需求的许可证。

    【讨论】:

      【解决方案3】:

      GPL。或者宣布它为公共领域。或者一个 24 页的 EULA,它限制用户在使用该组件时剃须的能力。或者类似的东西。

      您为什么不告诉我们您正在尝试做什么、预期用途是什么以及您希望发生什么?

      【讨论】:

        【解决方案4】:

        当您发布可升级到完整版本的软件试用版(换句话说,包含所有功能的程序集)时,您无能为力以防止有人最终破解它。 (使用 .net 比使用本机程序集更容易)。

        签名和混淆是防止它以非常易读的形式被逆向工程的唯一方法,但仅使用反射器之类的东西基本上可以为您提供完整的信息。

        保持许可外观的最简单方法之一是:

        • 使用公钥/私钥加密将许可信息(到期日期、启用的功能等)保存到文件中
        • 在程序集中包含公钥
        • 在您的应用程序启动时对加密信息进行解码,以检查是否有人被许可使用您的应用程序。
        • 在必要时使用您的私钥生成许可证并分发这些文件(如果数据足够小,则分发密钥)

        作为替代方案,您可以在应用程序中以明文形式包含带有哈希码的许可信息(这是许可密钥,算法也应该支持公钥/私钥),并且仅检查许可信息是否匹配哈希码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-30
          • 1970-01-01
          • 2020-09-26
          • 2013-09-07
          • 1970-01-01
          • 2013-01-18
          • 2021-04-10
          • 1970-01-01
          相关资源
          最近更新 更多