JAVA源代码保护及防止反编绎
亲们,交流个问题哈。我们现在的包是用java -jar运行的,现在想对代码做保护,防止反编绎,大家有啥经验么? 大家的思路都是 代码混淆(容易实现),还有就是重写ClassLoader(比较麻烦,也不知道会不会引起其它问题)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
亲们,交流个问题哈。我们现在的包是用java -jar运行的,现在想对代码做保护,防止反编绎,大家有啥经验么? 大家的思路都是 代码混淆(容易实现),还有就是重写ClassLoader(比较麻烦,也不知道会不会引起其它问题)
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(13)
谢,我了解下。
我用过xjar这个东西,你可以搜索一下,他会进行class加密,是没有办法进行反编译的
有解决方案没
谢谢,我会参考下。从我本身意愿上,我还是对改这些东西比较担心,。
重写 classloader 没想象的那么复杂,你可以参考jetty的WebappClassLoader类改写一下,我也是参考它改写的,挺好用。你也可以参考Tomcat的类似的那个类加载器改写。主程序基本没什么东西,运行这个ClassLoader加载class或者jar就行,其实就是构建了一个app运行容器,跟web容器差不多了。
提供一个我的自定义ClassLoader加载运行独立应用的范例,希望给你一个参考
jni方式可行性比较高
恩,您说的很中肯,但是C真的不熟悉啊。我其实想了解了解,有啥已经有的比较成熟的方案,直接先把问题解决了。
谢谢你,好象打开了新世界的大门。
回复
@MZHS : 我也是特别不想那么做,太费劲了,并且问题难以定位。
自己写类加载器没那么麻烦,其实就是实现一个简单的应用执行容器,发布版本和更新代码还能做成像web容器一样的热更新。如果担心主程序被反编译,倒可以如你所说结合C使用。
你可以用C调用Java的方式,先用C解密加密后的class,再在C中调用java的classloader,这样解密和加载的过程都是在C代码中,别人无法反编译debug调试。(这里有个问题就是如果别人知道你用的哪个Java的classloader类,依然可以debug看你解析后的结果,不过得了解程序才行,最稳妥的方式是完全用C代码解密以及加载类),用Java代码写的类加载器属于掩耳盗铃没有解决反编译debug调试得到源码的问题。
一言难尽。我们本身是应用程序,现在是想和第三方合作,但是呢,又不想第三方通过各种手段搞到我们的程序。
不交付可运行程序 让用户用你的云服务