2011-08-28 43 views
3

我在想如果有一个Java库可以帮助您将可部署的桌面Java应用程序转变为许可证所需的软件?Java软件许可证库,以最大程度地防止盗版?

不只是输入CD密钥,而是通过与另一台服务器进行通信,该服务器将通过Mac地址& IP对用户进行身份验证。

或者可能在Java桌面上创建一个简单的用户登录表单并让它与远程服务器通信以验证?这仍然容易破裂?

我对如何最好地保护自己免受海盗行为感到无能为力。

+0

防止盗版的最好方法是开源代码:-) –

+0

我不能直接对你的方法说话,但我也建议你也使用模糊处理(通过开源软件,如Proguard)来防止人们理解反编译的代码。 – Alastair

+0

你是否需要混淆器来避免反编译? –

回答

9

这个问题没有很好的解决方案。

标准方法是使用FlexLM等许可证进行许可证管理(或自行开发),然后在您的应用程序中使用混淆器,以使其很难禁用许可证检查。但是,解码混淆的字节码并不是一种火箭科学,所以你的努力将无法坚定地试图打破你的保护。

人们为防止禁用许可证检查而采取的另一种方法是加密字节码,并使用特殊的类加载器来即时解密它们。但是这也失败了,因为盗版者可以对类加载器进行逆向工程,提取解密密钥并使用它们解密字节码。

其他措施同样注定失败。问题是您的代码必须在您无法控制的平台上执行,并且这使得盗版者有足够的能力打破您可能包含在代码中的任何反盗版措施。


防止盗版的唯一(实用)方法是不让不受信任的人访问您的代码。在安全的服务器上运行它,并将其作为服务而不是产品提供。

国际海事组织,更好的办法是与您的代码盗版的事实生活在一起,并专注于为准备付钱的诚实客户提供物超所值的服务。或者干脆开源你的代码,并找出其他方式来获得你的努力奖励。


想想这样。像微软,媒体公司等多国公司还没有拿出真正的技术解决方案来解决盗版问题。你认为你有什么机会?

+0

这并不是说我试图重新发明轮子,或试图提出一个绝对安全的系统来防止盗版,但它肯定有可能使盗版变得困难或者在经济上不可行,以至于它会比没有盗版保护。微软和许多其他公司已经提出了一个完美的解决方案,但它的工作足以保护他们的销售。所以是的,我认为那里有一些解决方案,但不是一个完美的解决方案。我强调最好的解决方案可能不是理论上安全的解决方案,因为很多人都在关注 – KJW

+0

好运找它。 –

+0

我想这里没有太多的运气。 – KJW