JAVA源代码保护及防止反编绎

发布于 2022-01-05 14:02:14 字数 126 浏览 758 评论 13

亲们,交流个问题哈。我们现在的包是用java -jar运行的,现在想对代码做保护,防止反编绎,大家有啥经验么?   大家的思路都是 代码混淆(容易实现),还有就是重写ClassLoader(比较麻烦,也不知道会不会引起其它问题)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(13

泪冰清 2022-01-08 01:28:20

谢,我了解下。

心舞飞扬 2022-01-08 01:28:19

我用过xjar这个东西,你可以搜索一下,他会进行class加密,是没有办法进行反编译的

傾城如夢未必闌珊 2022-01-08 01:28:17

有解决方案没

天涯离梦残月幽梦 2022-01-08 01:28:12

谢谢,我会参考下。从我本身意愿上,我还是对改这些东西比较担心,。

泛泛之交 2022-01-08 01:27:09

重写 classloader 没想象的那么复杂,你可以参考jetty的WebappClassLoader类改写一下,我也是参考它改写的,挺好用。你也可以参考Tomcat的类似的那个类加载器改写。主程序基本没什么东西,运行这个ClassLoader加载class或者jar就行,其实就是构建了一个app运行容器,跟web容器差不多了。

提供一个我的自定义ClassLoader加载运行独立应用的范例,希望给你一个参考

        PluginClassLoader loader = new PluginClassLoader(false);
        Thread.currentThread().setContextClassLoader(loader);
        //ClassFileTransformer可对class进行解密
        //loader.addTransformer(new PluginClassFileTransformer());
        //添加应用所依赖的jar
        loader.addJars(new File("D:\workspace\NetBeansProjects\ddz-ws-server\dist\lib"));
        //添加应用的classpath
        loader.addClassPath(new File("D:\workspace\NetBeansProjects\ddz-ws-server\build\classes"));
        //获得应用主类
        Class cls = loader.loadClass("ddz.Main");
        //反射执行应用的main方法
        Method method = cls.getDeclaredMethod("main", String[].class);
        method.invoke(null, (Object) new String[]{});

 

累赘 2022-01-08 01:26:22

jni方式可行性比较高

冬天旳寂寞 2022-01-08 01:23:35

恩,您说的很中肯,但是C真的不熟悉啊。我其实想了解了解,有啥已经有的比较成熟的方案,直接先把问题解决了。

蓝颜夕 2022-01-08 01:17:51

谢谢你,好象打开了新世界的大门。

霞映澄塘 2022-01-08 01:08:23

回复
@MZHS : 我也是特别不想那么做,太费劲了,并且问题难以定位。

北笙凉宸 2022-01-08 00:38:13

自己写类加载器没那么麻烦,其实就是实现一个简单的应用执行容器,发布版本和更新代码还能做成像web容器一样的热更新。如果担心主程序被反编译,倒可以如你所说结合C使用。

掩饰不了的爱 2022-01-08 00:32:28

你可以用C调用Java的方式,先用C解密加密后的class,再在C中调用java的classloader,这样解密和加载的过程都是在C代码中,别人无法反编译debug调试。(这里有个问题就是如果别人知道你用的哪个Java的classloader类,依然可以debug看你解析后的结果,不过得了解程序才行,最稳妥的方式是完全用C代码解密以及加载类),用Java代码写的类加载器属于掩耳盗铃没有解决反编译debug调试得到源码的问题。

明月松间行 2022-01-08 00:14:39

一言难尽。我们本身是应用程序,现在是想和第三方合作,但是呢,又不想第三方通过各种手段搞到我们的程序。

蓝颜夕 2022-01-07 02:12:01

不交付可运行程序 让用户用你的云服务

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文