【问题标题】:How to protect my application against piracy [duplicate]如何保护我的应用程序免受盗版 [重复]
【发布时间】:2012-01-26 12:14:04
【问题描述】:

可能重复:
How are Software License Keys generated?

我是软件开发的初学者,我想知道如何在我的 Java 应用程序上实施保护系统来保护它免受盗版。我知道没有完美的解决方案。但我只想知道如何保护它。并且不要告诉我让它开源,在我的情况下这是不可能的:)。

感谢您的时间和回答。

【问题讨论】:

  • 你的java代码已经编译,所以它的源代码是受保护的,如果你想保护它的复制版本,这里有一个类似的问题stackoverflow.com/questions/3647255/…
  • @CarlosQuijano 认为 java 代码已编译,但仍然可以使用互联网上可用的免费软件进行反编译,即使是初学者也可以看到您为数据库连接设置了什么密码或您的实际代码是什么等

标签: java security piracy


【解决方案1】:

由于任何许可执行解决方案都可以通过一些努力来破解,因此我建议您根本不要尝试实施复制保护。许可证管理对您的用户来说很不方便。

如果你确定要实施版权保护,你可以使用开源库。

此外,您应该obfuscate 您的字节码,以稍微更难以对您的应用程序进行逆向工程。

【讨论】:

  • 非常感谢您的回答。
  • 这只是相对意义上的“明显更难”。具有相关技能的人可能仍然可以在几个小时内禁用混淆的许可证管理挂钩,如果不是更快的话。
  • @StephanC: 当然可以,否则需要几分钟 :)
【解决方案2】:

几年前我就考虑过这个问题。最终我决定不给它授权。我免费赠送了它,但我认为我最好的主意是:

向他们发送包含密钥的许可证文件。使用他们的全名和电子邮件地址 或同样个人的名称命名文件,并确保重命名它会使密钥失效。这应该很容易实现。您可以使用许多不需要将密钥存储在应用程序中的技术。

与任何系统一样,这并非无法破解,但正如多年前向我解释的那样,安全是为了让诚实的人保持诚实。

【讨论】:

  • 是的,我知道没有完美的解决方案。
  • 既然你和我分享了你的想法,我会告诉你我的:1)我将为每个版本创建一个哈希。 2)在安装之前,应用程序将计算它自己的哈希并将其发送到服务器,它将检查(哈希,版本)是否正确。如果不是,安装将停止,服务器将向我发送一封电子邮件,其中包含一些详细信息(IP 地址、MAC 地址和日期)。 3) 现在,如果哈希正常,将启动许可证验证。如果许可证没问题,安装将开始。所有这些东西都将被加密。我知道,这还不够。
  • @Zak001 - 这可能需要几个小时才能解决。但是一旦解决方法完成,被黑客入侵的安装程序将简单地跳过与服务器检查的步骤,并使用先前获取的密钥进行解密。 (即使为每次下载创建新的密钥/哈希也不会阻止......)
  • @Zak - 您在安装时假设在线连接?我的主要目标是确保任何人都可以在愿意的情况下将他们的钥匙交给其他人,但如果他们也给出了电子邮件地址(如果你愿意,你也可以使用继承人的家庭住址),那么他们会三思而后行。
猜你喜欢
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 2021-10-23
  • 2020-01-15
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
  • 2012-12-16
相关资源
最近更新 更多