检测 Java JAR/代码篡改

2024-06-19

我正在编写一个以 JAR 文件形式分发的软件。目前,该 JAR 文件可以被篡改以检索并保存我们的服务器通过以下方式传输的另一个文件URLClassLoader,进行反编译,并在我们的代码中找到应保持私有的各种内容,以确保使用它的客户端的安全。基本上,我想实现一种方法来检查原始 JAR 是否被篡改。我知道这是矛盾的不可能通过实施有效性检查SignedObject由于 Java 能够反编译的性质,在原始类中,但是是否有其他方法可以确定原始文件中的代码是否已被篡改?此检查可以通过下载的中间类来检查有效性,或通过任何其他保证有效的方式进行。我一整天都坐在这里试图找到解决这个问题的方法。欢迎任何帮助。


这在理论上和实践上都是不可能的。 jar 的验证发生在客户端。任何加密技术都不会以可验证的方式呈现给您,并且您相信客户端会提供任何加密技术。

即使您要从 jar 文件本身请求任意字节进行验证,邪恶的用户也可能会配置从良好的 jar 中获取字节,但由错误的代码呈现。

您可以使用密码证明来确保另一方has数据,但确保它只具有该数据的副本/修订/版本是不可能的。坚定的攻击者可以向您提供任何谎言,因为他可以在任何验证中声称他拥有有效的罐子。

简而言之,存在正确的数据并不意味着独家的相同的存在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测 Java JAR/代码篡改 的相关文章

随机推荐