如何有效的防止Java程序被反编译和破解?

shibai 2008-06-27 10:11:06
除了用混淆器处理一下,还有什么方法能有效的防止Java程序被反编译和破解?
...全文
1108 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
apinglee 2008-07-12
  • 打赏
  • 举报
回复
肯定是运用加密技术噻
sunyuqian 2008-07-12
  • 打赏
  • 举报
回复
关注
oracle1 2008-07-12
  • 打赏
  • 举报
回复
学习了
AshEmissary 2008-07-07
  • 打赏
  • 举报
回复
关注
mxlmwl 2008-07-07
  • 打赏
  • 举报
回复
恐怕没什么办法。牛人太多了,已经混淆了,足够防新手了。高手你防不住的。真要搞,把你加密的关键点隐藏的越深越好,多点冗余垃圾代码,然后在代码中多处判断,并延迟校验时间。当然前提是如果你不介意这样搞的话。

自打泡上了看雪,没啥东西觉得解不开的。。。。。
cuilike 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 sagezk 的回复:]
引用 25 楼 yetaodiao 的回复:
加密


  没有商业秘密还是开源好


没错,都什么年头了,开源一样能赚钱,看看 Mozilla。
[/Quote]
Sou2012 2008-07-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 laorer 的回复:]
你自己写个加密器,写个classLoader
[/Quote]
  • 打赏
  • 举报
回复
加密


  没有商业秘密还是开源好
sagezk 2008-07-06
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 hmsuccess 的回复:]
引用“运用外壳工具先把调用您的java解释器来进行加密,也就是说如果要运用这个解释器就需要有一把特定的加密锁存在,然后再运用它提供的外壳加密工具中的数据加密,把您写好的java程序(Class或JAR包)当作一个文件来处理而对他进行加密,这个加密是采用的锁里自带加密引擎(额外的)进行加密,加密之后生成新的JAVA程序。这样您的软件就只能被您保护过的java解释器来进行解释,”
[/Quote]

只是增加了反编译难度,呵呵,还是老紫竹有商业头脑,“如果你的程序已经到了有人成批破解时,我想你不需要加密了!”到时候在家数钱就行了。
hemaily 2008-07-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 laorer 的回复:]
你自己写个加密器,写个classLoader
[/Quote]
landyshouguo 2008-07-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ky000 的回复:]
呵呵,大家庭幽默的,混淆技术还是最基本的保护方法。

你看看这个:
http://www.blogjava.net/ioriqw/archive/2006/04/29/43947.html
http://bbs.tech.ccidnet.com/read.php?tid=177934

如果不能阻止被反编译的话,至少可以通过一些方法来增加它的困难性。例如: 在一个分步编译里,你可以打乱Class文件的数据以使其难读或者难以被反编译成正确的JAVA源文件,前者可以采用极端函数重载,后者用操作控制流建立控制…
[/Quote]
xuhaiyang 2008-07-06
  • 打赏
  • 举报
回复
jni
转native代码吧
palm_civet 2008-07-06
  • 打赏
  • 举报
回复
关注一下
hmsuccess 2008-07-06
  • 打赏
  • 举报
回复
引用“运用外壳工具先把调用您的java解释器来进行加密,也就是说如果要运用这个解释器就需要有一把特定的加密锁存在,然后再运用它提供的外壳加密工具中的数据加密,把您写好的java程序(Class或JAR包)当作一个文件来处理而对他进行加密,这个加密是采用的锁里自带加密引擎(额外的)进行加密,加密之后生成新的JAVA程序。这样您的软件就只能被您保护过的java解释器来进行解释,”
hmsuccess 2008-07-06
  • 打赏
  • 举报
回复
http://www.cnjm.net/tech/article1525.html
老紫竹 2008-07-06
  • 打赏
  • 举报
回复
如果你的程序已经到了有人成批破解时,我想你不需要加密了!
sagezk 2008-07-06
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 yetaodiao 的回复:]
加密


  没有商业秘密还是开源好
[/Quote]

没错,都什么年头了,开源一样能赚钱,看看 Mozilla。
mengweilil 2008-07-05
  • 打赏
  • 举报
回复
apusic加密了
weblogic不加密

apusic照样没人用
aaronshai 2008-07-05
  • 打赏
  • 举报
回复
学习
KingNE 2008-07-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 phoenix_dt 的回复:]
路过学习了
[/Quote]
加载更多回复(12)
众所周知,java开发语言提供了很方便的开发平台,而且开发出来的程序很容易在不同的平台上面进行移植,现在越来越多的人使用它开发软件。 Java有了它方便的一个方面,但是他同时也带给了开发者一个烦恼,这就是保护的办法不多,而且大多数不是很好用,这样自己辛苦开发出来的程序很容易被人反编译过来而据为己有,一般情况下,大多数的人都是用混编器(java obfuscator)来把开发出来的程序进行打乱以达到没有办法来反编译观看源代码,但是这种办法在网上很容易找到相关的软件来重新整理,那么这个混编只能控制一些本来也没有办法动您的软件的人,而对于一些掌握工具的人几乎是透明的,还有就是利用硬件加密锁,但大多数公司提供的硬件加密锁只是提供了一些dll的连接或简单的api调用,只要反编译他们,就很容易把一些api调用去掉,这样硬件加密锁也就不起作用了,但是现在到底有没有好的办法呢? 市场上现有的几款防止反编译工具其实都是改进了加载过程。但是加载到JAVA虚拟机后一样可以得到CLASS字节码的。 只要懂JAVA原理的人其实很用意破解的. JAVACOMPILE 这款工具就不一样了,javacompile 它是修改了虚拟机内核, 用户目录里没有需要的JAVA字节码,而是当JAVA需要调用函数的时候才通过网络下载相对应的已经二次编译的字节码,就算用户通过 CLASS.getClass 也得不到可以用来反编译字节码。 真正意义上保护了JAVA知识产权。 个人版限制编译30个CLASS文件,文件打包方式下载。

62,628

社区成员

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

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