如何复制保护我的Java应用程序?

时间:2010-09-05 18:37:31

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

我想使用PayPal销售我的Java应用程序。收到付款后,客户会通过邮件向我的应用程序发送一次性下载链接。

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

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

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

请帮我解决这个问题:)

6 个答案:

答案 0 :(得分:30)

处理此问题的最常见方法是:客户为您提供资金,您生成一个独特的解锁密钥并将其提供给客户。密钥应该是有效的解锁密钥,并且应该编码关于用户的标识信息。客户使用该密钥在他们喜欢的任意数量的计算机上安装,或者许可证允许。

不要担心逆向工程。你的产品,如果它受欢迎,将被盗版 - 如果你看起来足够努力,你会发现在线解锁密钥。如果你愿意,你可以把它作为一种恭维 - 有人喜欢你的软件足以窃取它。我知道,冷酷的安慰,但另一种选择是与海盗进行军备竞赛,你不会赢得那个。最后,百分之几的人口会窃取软件,而你却无法做多少。您可以使用密钥的标识信息(如果您的方案足够强大),以便跟踪首先释放密钥的人。

答案 1 :(得分:9)

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

你可能需要的是定期监管互联网,找到你的软件被盗版的地方,这与大多数情况下你可以实际阻止他们的普遍看法相反。只需将DMCA提供给下载网站(大多数人都会遵守),您将能够在大约80%的案例中删除您的软件。我已经完成并在我的软件上体验过它。有些人不会删除,但我发现在我做这个的1。5年里,我的销售情况有所改善。

我还使用了一项服务 - http://spotpiracy.com,这可以帮助我找到这些链接,除了我自己的手工研究(我有一个致力于此的人)。 :)

答案 2 :(得分:4)

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

  • 1。模糊你的代码(建议使用proguard)
  • 2。在试用期内提供具有全部功能的免费版本
  • 3。根据注册用户电子邮件或其他唯一信息使用序列号例程

总的来说,你必须接受一定数量的盗版,但如果你的申请值得,人们会为此付费。诚实的人会诚实,复制保护不会让不诚实的人诚实。

答案 3 :(得分:3)

在我看来,如果你不确切地知道如何有效地保护你的源代码,那么就不要开始尝试基于硬件自己混合。这很容易打破,很可能只会让你的顾客烦恼。

我想你会看看Atlassian是如何做到这一点的。他们碰巧出售Java软件,显然做得很好。 http://www.atlassian.com/尝试下载,例如JIRA和安装一起玩。这将使您了解他们的许可方案如何运作,以及用户可以合理期望从专业软件中获得什么。

答案 4 :(得分:2)

您必须实施许可功能。

以下是一个有趣的资源:http://members.chello.at/stefan-schneider/JavaLicenseKit.html

答案 5 :(得分:1)

在我过去的旧c ++时代,我开始使用MAC地址代码保护来解决盗版问题,非常好,并且真的没有机构偷走我的软件来支持mac地址保护,因为我总是强迫操作系统重新读取真正的mac避免mac覆盖。那就是C ++编码可以直接访问本地资源。

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

我认为,作为简历,不可能再次保护java程序盗版。我发现没有像旧的金色c ++日那样:)