如何在1年后使Java应用程序过期?

如何在1年后使Java应用程序过期?,java,Java,尽管客户端有源代码,但如何在一年后使Java应用程序过期? 有些秘密在哪里? 所以他无法查看和更改它。没有技术解决方案,这是完全不可能的。如果你的合同规定客户只能使用该应用程序一年,那么你可以起诉他们,如果他们以后仍然使用该应用程序。如果你没有这样的合同,甚至不要尝试这样做,因为这可能会让你被起诉,要求赔偿损失 在工作中使用正确的工具也意味着不要试图找到法律问题的技术解决方案。如果客户端有完整的源代码,并且您的应用程序是独立的,并且不依赖于任何其他服务器端组件,那么您就无法保护任何东西 若应用程

尽管客户端有源代码,但如何在一年后使Java应用程序过期? 有些秘密在哪里?
所以他无法查看和更改它。

没有技术解决方案,这是完全不可能的。如果你的合同规定客户只能使用该应用程序一年,那么你可以起诉他们,如果他们以后仍然使用该应用程序。如果你没有这样的合同,甚至不要尝试这样做,因为这可能会让你被起诉,要求赔偿损失


在工作中使用正确的工具也意味着不要试图找到法律问题的技术解决方案。

如果客户端有完整的源代码,并且您的应用程序是独立的,并且不依赖于任何其他服务器端组件,那么您就无法保护任何东西

若应用程序使用服务器,则可以在服务器上阻止它。如果没有,您可以创建一些对应用程序运行非常重要的小部分代码,但这部分代码将从服务器下载


或者,这部分代码可以在没有源代码的情况下提供,并在编译后进行模糊处理

这可以通过客户机-服务器交互来实现

当客户机软件交付给客户并在服务器软件中注册时,应在数据库中注册客户机启动的日期和时间

我们应该确保客户端软件在没有连接到服务器软件的情况下不能工作

客户端软件应该有一个代码,该代码应该能够通过执行服务器推送指令在任何时间禁用所有功能。或者服务器应该控制客户端软件的关键功能


这是做应用程序的一个想法。

LOL,什么?你为什么要这样做?如果客户端拥有所有的源代码,这将是非常棘手的…派一个拿着棍子的大个子过来,说支付你的许可费,否则服务器就会盯上你的眼睛。客户端是否知道你打算这么做,或者你会因为尝试而违反合同?添加足够多的bug。他们会回来找你修复的。对于这种法律问题,有一个简单的技术解决方案:添加一些服务器端检查。整个行业的许可证管理人员基本上都是通过授权互联网访问和执行在线许可证验证来工作的。有些人更进一步,使部分计算发生在服务器端,除非攻击者尝试重新编写发生在服务器端的逻辑,否则无法解决这一问题。例如,我花了$$$购买了一个特殊的C++/BREW编译器,如果我没记错的话,它是由FlexLM保护的。@user988052:如果客户端有应用程序的源代码,那么删除该检查同样是微不足道的。将应用程序逻辑的一个重要部分放在由您控制的服务器上几乎是唯一可行的方法,但要求应用程序以这种方式设计。@user988052 Michael在这一点上绝对正确-这是否仍然允许运行?支票是完全无用的。除了更改代码,您还可以监视发送的包,然后将客户端检查转发到您自己的服务器,该服务器始终返回“是”,一切正常。唯一的方法是将大部分应用程序逻辑存储在服务器端,因为在这种情况下,您必须对该部分进行重新设计。@Voo:我还谈到了服务器端检查,您在第一条评论中也提到了这一点,但无论如何。。。你认为这是浪费时间的金钱,但推论是:即使是最简单的拷贝保护也会阻止99%的客户对你的软件进行盗版。像FlexLM这样的拷贝保护并不是为了抵抗最好的盗版:正如俗话所说,它的目的是让诚实的客户保持诚实。你认为这是一个浪费,但我可以说这是一个非常成功的行业保护非常成功和非常先进的产品。@ Voo:如果你认为服务器端编译不起作用,那你就错了。我曾致力于移动移植解决方案,我们的客户如果不在服务器上执行部分构建/编译,就无法进行构建。我们是为BREW构建而这样做的,因此购买我们软件的人可以从$$$BREW编译器中受益,我们在某种程度上重新授权给他们,编译器的许可证完全允许这样做。因此,我们使用FlexLM支付产品的费用作为保护,然后在我们的服务器上进行客户机的构建。这不是一个黑白世界。。。