Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 防止应用程序从一台电脑复制到另一台电脑_Java_Desktop - Fatal编程技术网

Java 防止应用程序从一台电脑复制到另一台电脑

Java 防止应用程序从一台电脑复制到另一台电脑,java,desktop,Java,Desktop,我已经创建了一个JavaFX应用程序。现在我想保护它不被复制到其他计算机上。更详细地说,我将应用程序出售给一位客户,安装此应用程序后,我需要确保它不会从一台计算机复制到另一台计算机 如何防止有人复制应用程序?规则是:不能阻止在其计算机上具有管理员权限的用户复制该计算机上存在的任何文件的位。句号 您所能做的最好的事情是找到一个硬件标识符来标识特定的机器,并在某个地方(在可执行文件本身或辅助文件中,甚至通过您所拥有的服务器上的网络)混淆该值 当程序运行时,它可以将硬件标识符与其存储的标识符进行比较,

我已经创建了一个JavaFX应用程序。现在我想保护它不被复制到其他计算机上。更详细地说,我将应用程序出售给一位客户,安装此应用程序后,我需要确保它不会从一台计算机复制到另一台计算机


如何防止有人复制应用程序?

规则是:不能阻止在其计算机上具有管理员权限的用户复制该计算机上存在的任何文件的位。句号

您所能做的最好的事情是找到一个硬件标识符来标识特定的机器,并在某个地方(在可执行文件本身或辅助文件中,甚至通过您所拥有的服务器上的网络)混淆该值

当程序运行时,它可以将硬件标识符与其存储的标识符进行比较,如果它们不同,则阻塞

限制:

  • 除非您自己安装,否则很难阻止用户在安装前复制程序。这意味着您需要在安装时执行联机步骤,以防止从同一源进行多次安装
  • 如果用户由于任何原因必须更改您监控的硬件,测试将失败,同时应允许用户使用您的程序=>准备好为此提供支持。并且要确保,如果你没有明确要求,一个普通用户不会仅仅因为内部网络接口已经停止使用而想象他的程序不再工作

TL/DR:你试图用一种技术方法来解决一个法律问题。尽量克制。我记得那些需要在并行端口上安装特殊硬件的旧程序。这导致了很多噩梦,因为我工作的公司突然出了问题,决定不再购买需要硬件密钥的软件,即使是更便宜的软件。用户体验确实是一个选择标准,而这些&!安全工具提供了非常糟糕的用户体验。

您正在寻找的术语是DRM(“”),在大多数情况下,这是一个失败的原因。不可能实现牢不可破的数字版权管理,因为一台计算机可以做的任何事情另一台计算机也可以做,所以没有办法防止有人假装“哦,它仍然是同一台计算机”。可以尝试检查硬件相似性和序列号等,但这些都可能是伪造的(至少在理论上是如此),在实践中也会破坏合法的使用案例,例如更换出现故障的硬盘

也不可能阻止某人简单地修改您的程序以删除或破坏DRM。即使是加密二进制文件的整个非DRM实现部分以及仅在DRM检查通过时获取解密密钥等技术也是不够的,因为解密密钥可以从进程的内存中捕获并用于解密加密部分,然后DRM部分就可以扔掉。模糊处理会使这项工作变得更加困难,但如果计算机能够执行程序,那么人类就可以(有足够的时间和/或有用的软件)对程序进行逆向工程

所有这些模糊处理和DRM所做的就是让人们花更长的时间成功地对程序进行反向工程/盗版。从理论上讲,您可能会提出足够的困难,鉴于目前可用的工具,地球上没有任何人能够对软件进行足够的反向工程,以便在比克隆程序行为所需的时间更短的时间内删除DRM,但你不能让它变得不可能,也不能阻止人们编写更好的反向工程工具


编辑:DRM是如此毫无意义,以至于有些人破坏它只是为了好玩,盗版破坏的DRM版本,而不是同一软件的无DRM版本。一个关于DRM绝望的有趣故事,摘自上面链接的Wikipedia文章(重点补充):

[CD Projekt Red的首席执行官,Marcin]Iwinski在谈到DRM时说,“事情太复杂了。我们发布了这个游戏。它在两个小时内就破解了,Witcher 2还来得及。真正让我吃惊的是,盗版者没有使用GOG[DRM free]版本,它没有受到保护。他们拿走了SecuROM[商业DRM]零售版,破解并说“我们破解了”——同时还有一个同时发布的非安全版。。你可能会认为GOG版会是一个浮动版本。”

可能重复的