gpt4 book ai didi

java - 在优先考虑源代码保护的情况下加密 JAR

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:45 30 4
gpt4 key购买 nike

我有一个难题。基本上,我已经给一群我是 friend 的人提供了一个使用源代码的程序,我不希望小组外的任何人知道。我们都知道 Java 在进行任何级别的混淆时都非常糟糕,因为大多数混淆工具只会重命名对象、打乱代码等。我使用过这样的工具,但老实说,我想尽可能地使用程序的安全性。

由于应用程序需要用户名、密码和其他标识符才能登录到它使用的服务器,我开始怀疑是否可以为用户生成一个唯一的 AES key 来保护 JAR。

基本上,在运行各种启动器登录时,启动器应用可能会从服务器请求 AES key ,并使用它来解密已经从服务器下载的安全 JAR。 key 对每个用户来说都是唯一的,这意味着服务器必须为每个用户以不同的方式加密 JAR。

现在,我知道这听起来有多疯狂了。但由于这是一个低级的事情,我需要知道是否有一种方法可以以某种方式从任何类型的流中解密和运行 JAR。或者,如果这不可能,解密文件、运行它然后重新加密是否合理?

最佳答案

当然,您可以即时解密和运行 Java 字节码 - 字节码操作库(例如 ASM)甚至可以动态地创建新类。

但是,老实说,如果某些东西确实在计算机上运行,​​那么它的代码肯定会提供给任何了解相关知识的人。 Java 尤其方便,因为与任何 native 编译语言相比,它允许更好地访问由 JVM 加载的类的字节码。

理论上,您可以通过使用 JNA/JNI 和一两个 native 共享库来进一步混淆。但是,在坚定的攻击者手中,没有任何措施可以完全保护您的代码——他们只会花费更多时间来弄清楚您的算法是如何工作的。如果您担心盗版,那么,我们正处于虚拟化时代;实际上,只需按几下按键,您就可以从上到下克隆整个计算机系统 - 剩下的由您自己解决...

唯一可能可行的解决方案是将您的软件作为服务提供,但该方法会带来所有问题 - 而且您仍然没有绝对的安全性。

如果您担心保护您的知识产权,那么请一位律师并考虑以某种形式发布您的算法 - 默默无闻只会到此为止。它不会阻止某人对您的系统进行黑盒分析,通常只知道某些事情是可能就足够了。

停止尝试为明显不属于技术性质的问题寻找技术解决方案......

关于java - 在优先考虑源代码保护的情况下加密 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14111603/

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