gpt4 book ai didi

Java JAR 保护

转载 作者:行者123 更新时间:2023-11-30 06:29:46 27 4
gpt4 key购买 nike

我编写了一个 Java 应用程序,并计划在线发布它。每个版本都将使用我制作的 secret 序列 key 锁定。

我需要从反编译器等保护我的 jar 文件。这是我到目前为止所做的:

  1. 用户在表格中输入他的序列号
  2. 序列号通过 php 脚本发送到我的开发服务器
  3. 脚本生成一个新的 jar bin 文件,该文件以 AES 128 加密
  4. 我的“加载器”以字节形式下载 jar 文件并对其进行解密。
  5. 它调用主要方法。
  6. 用户可以随心所欲地使用该应用
  7. 用户关闭应用
  8. 清除缓存,一切返回到步骤 1 或之前。

我已经完成了步骤 1 到 3,但我需要知道是否可以制作一个自定义类加载器来从 HTTP 获取字节、解密它们并调用 main 方法。由于文件已完全加密(在 PHP 服务器上保存为 bin),我无法使用基本的类加载器。关于第8步,是否可以从计算机内存中卸载内容?

最佳答案

是的,这是可能的,但也没用。

您的类加载器将是您安全系统的最薄弱点。不能加密,反编译相对容易。

现在,由于类加载器中有一个地方必须有字节数组形式的解密类,攻击者唯一需要做的就是将这个字节数组转储到一个文件中。

引用dystroy的代码:

classBytes = EncryptionUtil.decryptBytes(url, key); 

// In this moment, classBytes contains unencrypted class.
// If an attacker adds:
//
// FileOutputStream fos = new FileOutputStream("some.name");
// fos.write(classBytes);
// fos.close();
//
// he will destroy all your security.


return defineClass(name, classBytes, 0, classBytes.length);

关于Java JAR 保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11137545/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com