【问题标题】:How do I copy-protect my Java application? [closed]如何复制保护我的 Java 应用程序? [关闭]
【发布时间】:2010-09-05 18:37:30
【问题描述】:

我想使用 PayPal 出售我的 Java 应用程序。收到付款后,客户会收到我的应用程序的一次性下载链接。

我的问题是,如何防止人们将 .jar 文件发送给他们的朋友/将其上传到互联网上?

显然,我需要在应用程序中进行某种检查,只允许它在一台计算机上运行。这是另一个问题,我不希望客户在一台计算机上受到限制,他们应该能够在家中运行它并工作等。

也许某种 cd-key 可以解决问题?那里有 Java 的 cd-key 资源吗?或者我应该建立自己的算法?还有一个问题,逆向工程..

请帮我解决这个问题:)

【问题讨论】:

标签: java licensing reverse-engineering copy-protection cracking


【解决方案1】:

最常见的处理方式是:客户给您钱,您生成唯一的解锁密钥并将其提供给客户。密钥应该是一个有效的解锁密钥,并且它应该对用户的识别信息进行编码。客户可以使用该密钥在他们喜欢或许可允许的任意数量的计算机上安装。

不用担心逆向工程。你的产品,如果它很受欢迎,就会被盗版——如果你足够努力的话,你会在网上找到解锁钥匙。如果你喜欢,你可以把它当作一种恭维——有人喜欢你的软件,以至于偷了它。冷酷的安慰,我知道,但另一种选择是与海盗进行军备竞赛,你不会赢的。最终,只有百分之几的人会窃取软件,而你对此无能为力。如果您的方案足够强大,您可以使用密钥的识别信息来追踪谁首先释放了密钥。

【讨论】:

  • 我需要在线查找密钥服务对吗?
  • 我真的 LOVE 第二段,尤其是you won't win the pirates 部分。他们想复制(或窃取,如果你想这样称呼它)你的软件,他们会这样做。你不能反对
  • 您可以在线检查密钥,限制它们的安装频率,尽管逆向工程程序不必这样做。
  • Michael - 你有任何关于如何在 Java 中实现你的建议的例子吗?
  • @AlbaMendez 在我看来这是个坏建议。我以前使用过复制保护,它有助于阻止盗版(产品很受欢迎)。我在 torrent 上没有任何副本,只有一些我在未来版本中不断禁用的密钥。
【解决方案2】:

实际上有许多许可证管理解决方案可以提供帮助,但真正的问题是它们都可以被破解。我个人试过从最贵到最便宜的。最后,我推出了自己的方法,每次运行软件时,我都会根据服务器中记录的详细信息检查软件的 pc 详细信息(mac id 等)。因为我的软件和互联网紧密相连,所以没关系,但我相信这几天它会被破解。

您可能需要定期对 Internet 进行监管,并找出您的软件在哪里被盗版,这与人们普遍认为的相反,在大多数情况下您实际上可以阻止盗版。只需向下载网站提供 DMCA(大多数都会遵守),您将能够在大约 80% 的情况下删除您的软件。我已经在我的软件上完成并体验了它。有些人不删除,但我发现在我这样做的 1.5 年里,我的销售额有所提高。

我还使用了一项服务——http://spotpiracy.com,它可以帮助我在自己的手动研究之外找到这些链接(我有一个专门从事此工作的人)。 :)

【讨论】:

    【解决方案3】:

    每个人对这个问题都有自己的看法,所以期待很多不同的建议。这是我的看法:

    • 1。混淆你的代码(推荐使用proguard)
    • 2。在试用期内提供具有完整功能的免费版本
    • 3。使用基于注册用户电子邮件或其他唯一信息的序列号例程

    总体而言,您将不得不接受一定程度的盗版,但如果您的应用程序值得,人们会为此付费。诚实的人会诚实,版权保护不会让不诚实的人诚实。

    【讨论】:

    • 有试用期的破解版本比较容易。你已经有了完整版,你只需要伪造时间。
    • 这可以追溯到我的几个观点 - 让诚实的人保持诚实,混淆,并接受你不会打败盗版。
    • 不完全正确。在某些情况下,实施不当的 DRM 会阻止诚实的人做他们有权做的事情(根据法律),并导致他们破坏您的 DRM。 (或者把你的软件扔出最近的窗口,再也不和你做生意了!)
    • 非常真实的斯蒂芬,好点
    【解决方案4】:

    在我看来,如果您不确切知道如何有效地保护您的源代码,那么就不要开始尝试基于硬件自己将某些东西散列在一起。它太容易坏了,而且很可能只会惹恼您的客户。

    我建议您看看 Atlassian 是如何做到这一点的。他们碰巧销售 Java 软件,而且显然做得很好。 http://www.atlassian.com/ 尝试下载例如JIRA 和安装。这将使您很好地了解他们的许可方案是如何运作的,以及用户对专业软件的合理期望。

    【讨论】:

      【解决方案5】:

      您必须实施许可功能。

      这里有一个有趣的资源作为入门:http://members.chello.at/stefan-schneider/JavaLicenseKit.html

      【讨论】:

        【解决方案6】:

        在我以前的 c++ 时代,我使用 MAC 地址代码保护来对抗盗版,非常好,真的没有人窃取我的软件,因为我总是强制操作系统重新读取真正的 mac 以避免mac 覆盖。那是关于可以直接访问本地资源的 C++ 编码。

        今天的情况并非如此,在代码位于 .class 文件中的 Java 应用程序中,这些文件总是可以被解码回原始源代码(是的,这是可能的,而且很容易找到这样做的工具) .

        我认为,作为简历,不可能保护java程序免受盗版。我发现没有办法像过去的黄金 c++ 时代 :)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-05
          • 1970-01-01
          • 2016-11-03
          • 2010-12-09
          • 2023-03-16
          • 2012-03-29
          • 2020-03-06
          • 1970-01-01
          相关资源
          最近更新 更多