Java防止反编译

guohua414 2014-12-12 06:01:11
Java中发布到客户机的Jar如何做到防止反编译而保护程序。
现在一般的做法:
1.代码混淆:尝试下来,有的工具好一点混淆程度高,有的工具差一点效果也就打点折扣,但反射的类需要排除在外,工作量挺大
2.classloader加密:没尝试
3.生成本地代码:破坏了跨平台,也担心性能
4.远程调用:实际业务不可远程防止,不考虑

看见别人有一种方式,可以禁止打开jar,加载进来也看不到源码,不知道什么方法。
有经验的朋友解答下,不胜感激。
...全文
173 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
humanity 2014-12-13
  • 打赏
  • 举报
回复
JKD 6 Instrument agent,挂载上去后每个类加载都可以通过它来先处理一次,比如我们用 dll 来解密类的内容。当然你的 dll 还是有可能被人家破解的。这个时候 jar 文件中每个 class 文件的内容本身是错误的,加密的,不是 class 原始格式,因为无法反编译。要不咱来个 SSL 连接到服务器解密类,服务器给客户端发一张客户端 SSL 证书来访问服务器,这时候服务器才愿意帮它解码它发送过来的加了密的 class 文件内容。这样加密解密都只有服务器知道,SSL 证书也是服务器发的,其它人没法用。 不过无论如何,理论上没有不能被破解的程序,混淆只是让反编译出来的代码难以理解,肯定是有人能理解的。只是理解它花去的时间成本因人而异。
rumlee 2014-12-12
  • 打赏
  • 举报
回复
自定义classloader结合本地代码启动,这样应该安全性还是比较高的。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧