前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

java程序如何防止反编译? - 开源中国社区 首页 开源项目 Java 开源软件 C# 开源软件 PHP 开源软件 C/C++ 开源软件 Ruby 开源软件 Python 开源软件 Go开源软件 JS开源软件 讨论区 技术问答 &raquo; 技术分享 &raquo; IT大杂烩 &raquo; 职业生涯 &raquo; 站务/建议 &raquo; 支付宝专区 &raquo; 开源硬件专区 &raquo; 代码 博客 翻译 资讯 移动开发 Android开发专区 iOS开发专区 iOS代码库 Windows Phone 招聘 城市圈 当前访客身份:游客 [ 登录 | 加入开源中国 ] 开源中国 讨论区 当前位置: 讨论区 &raquo; 技术问答 &raquo; Java 搜 索 java程序如何防止反编译? 老俞 发表于 2012-12-26 10:45 1年前, 23回/4069阅, 最后回答: 1年前 马年献礼,git@osc 抽奖活动火热进行中~ java程序如何防止反编译?这种情况已经有出现。请教各位 标签: Java 我想问同样的问题 共1个人想要问同样的问题 补充话题说明&raquo; 分享到 收藏 2 举报 踩 0 | 顶 0 按评价排序 | 显示最新答案 | 回页面顶部 共有23个答案 我要回答&raquo; 宏哥 回答于 2012-12-27 14:21 举报 回复 @SeekerLee : 我发现很多人以为我在说笑话. 我下面是非常严谨的话: 所有的脚本语言, 不管是lua, python, php,tcl........还是其他, 都有中间码, 都可以编译. 这些脚本的中间码由于类C, 反编译都是极其困难的. 比java更困难. 区别就是, 这个中间码保存到文件, 标准工具集当中是否提供, 如果没有提供, 就需要一些手段. --- 共有 1 条评论 --- 喔。PHP的确facebook搞了个编译器php->cpp的,虽然现在用hhvm替换了。但不是所有语言都有现成编译器给你用的哦。 (1年前 by SeekerLee) 回复 有帮助(0) | 没帮助(0) | 评论(1) | 引用此答案 叶落花开 回答于 2012-12-27 14:09 举报 混淆器 有帮助(0) | 没帮助(0) | 评论(0) | 引用此答案 呼伦 回答于 2012-12-27 13:36 举报 别纠结这个了,还是写好程序吧。。。 --- 共有 1 条评论 --- +1 (1年前 by hanzhankang) 回复 有帮助(0) | 没帮助(0) | 评论(1) | 引用此答案 _bill 回答于 2012-12-27 12:52 举报 听说,应用了反射机制的代码不能混淆,混淆后就反射不出来 高人解答下,是不是这样的 有帮助(0) | 没帮助(0) | 评论(0) | 引用此答案 要做攻城师的志 回答于 2012-12-26 23:29 举报 用自己定义的类加载器加载,.class文件先加密,然后加密,这样的话,只有用你自己的类加载器才能加载这些.class文件 有帮助(0) | 没帮助(0) | 评论(0) | 引用此答案 老俞 回答于 2012-12-26 17:43 举报 引用来自“妖魔舞”的答案 混淆足矣,高级点的混淆可以产生变异的字节码,用反编译class的工具也无法反编译反编译出来也是错的。 JVM启动可以加javaagent,-Xbootclasspath等参数,定义自己的classloader,这个加载器可以是C写的DLL 当然要破解还是有办法,修改JVM的话成本太大。 美女的意思是混淆就OK了,等他搞明白头也不在人世了? 修改JVM成本大的意思是需要很大的工作量?修改后稳定性会有问题吗? 有帮助(0) | 没帮助(0) | 评论(0) | 引用此答案 南湖船老大 回答于 2012-12-26 17:04 举报 混淆足矣,高级点的混淆可以产生变异的字节码,用反编译class的工具也无法反编译反编译出来也是错的。 JVM启动可以加javaagent,-Xbootclasspath等参数,定义自己的classloader,这个加载器可以是C写的DLL 当然要破解还是有办法,修改JVM的话成本太大。 有帮助(0) | 没帮助(0) | 评论(0) | 引用此答案 jackjc 回答于 2012-12-26 16:39 举报 可以对变量名做一些混淆,其他应该没什么特别好的办法。 有帮助(0) | 没帮助(0) | 评论(0) | 引用此答案 崔钢 回答于 2012-12-26 13:02 举报 没必要,只要你的系统足够的复杂,细节超过一定的程度,就算别人反编译你的代码,也没关系的。 --- 共有 1 条评论 --- +1 (1年前 by 夕水溪下) 回复 有帮助(0) | 没帮助(0) | 评论(1) | 引用此答案 sunyh 回答于 2012-12-26 12:56 举报 这个 您 能看懂? 代码一多 头到要爆炸了,再是不是 更新自己的代码。 package com.tools.CorePropertieEditor; import java.awt.Font; import java.util.Map; import java.util.Properties; import java.util.Vector; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JTextField; public final class a { private static Font a = new Font("Dialog", 0, 15); public static JComponent a(n paramn) { Object localObject2 = paramn; Object localObject1; if ((localObject1 = o.a.a((localObject3 = localObject2).jdField_a_of_type_JavaLangString)) == null) localObject1 = (localObject3 = localObject2).c; if (localObject1 == null) localObject1 = System.getenv().get((localObject3 = localObject2).jdField_a_of_type_JavaLangString); if (localObject1 == null) localObject1 = System.getProperties().get((localObject3 = localObject2).jdField_a_of_type_JavaLangString); localObject2 = paramn; Object localObject3 = paramn; (localObject3 = new l(Integer.valueOf(0), Integer.valueOf(2147483647))).setText(String.valueOf(localObject1)); (localObject3 = new JTextField()).setText(String.valueOf(localObject1)); localObject3 = ((n)localObject2).a(); (localObject2 = new JComboBox((Vector)localObject3)).setSelectedIndex(((Vector)localObject3).indexOf(localObject1)); localObject2 = paramn; (localObject1 = (localObject3 = localObject2).jdField_a_of_type_ComBokesoftMyerpToolsCorePropertieEditorE == e.c ? localObject2 : (localObject3 = localObject2).jdField_a_of_type_ComBokesoftMyerpToolsCorePropertieEditorE == e.jdField_a_of_type_ComBokesoftMyerpToolsCorePropertieEditorE ? localObject3 : paramn.jdField_a_of_type_ComBokesoftMyerpToolsCorePropertieEditorE == e.b ? localObject3 : null).setToolTipText(paramn.e); localObject2 = paramn; ((JComponent)localObject1).setEnabled(paramn.b); ((JComponent)localObject1).setFont(a); return localObject1; } public static void a(n paramn, JComponent paramJComponent) { Object localObject = ""; n localn = paramn; if (paramn.jdField_a_of_type_ComBokesoftMyerpToolsCorePropertieEditorE == e.b) { localObject = (localObject = (l)paramJComponent).getText(); } else { localn = paramn; if (paramn.jdField_a_of_type_ComBokesoftMyerpToolsCorePropertieEditorE == e.jdField_a_of_type_ComBokesoftMyerpToolsCorePropertieEditorE) { localObject = (localObject = (JTextField)paramJComponent).getText(); } else { localn = paramn; if (paramn.jdField_a_of_type_ComBokesoftMyerpToolsCorePropertieEditorE == e.c) { localObject = paramn.a(); paramJComponent = (paramJComponent = (JComboBox)paramJComponent).getSelectedIndex(); localObject = (String)((Vector)localObject).get(paramJComponent); } } } localn = paramn; o.a.put(paramn.jdField_a_of_type_JavaLangString, localObject); } } 有帮助(0) | 没帮助(0) | 评论(0) | 引用此答案 123> 回答案顶部 | 回页面顶部 有什么技术问题吗? 我要提问 全部(12)...老俞的其他问题 年底找工作的人是多还是少?(4回/1397阅,1年前) 有埃森哲做电信OSS咨询的兄弟吗?(3回/609阅,1年前) 有没有搞过大数据(几个G)分发多个客户端(10个以上)的?速度要快(4回/221阅,1年前) 【北京】北京筑和招聘Java开发工程师(中级)[6~9K](4回/419阅,1年前) 类似的话题 学习java以后主要做什么工作啊?具体一点都包括什么?不要说什么按公司需求!(33回/6122阅,1年前) 谁能帮个忙给个android手机wifi接收数据的程序(4回/755阅,1年前) 怎么把JAVA写的代码打包成电脑可以直接执行的文件?(18回/2401阅,1年前) java哪个类库解析xml性能最快?(19回/4365阅,1年前) 有没有做JAVA UI的软件?(22回/3777阅,1年前) 约定优于配置,?优于约定(6回/885阅,1年前) 如何实现js调用java,将结果返回?(21回/3422阅,1年前) 大家好,现在急需一个能够搭建在java环境下的开源工作流控件(6回/577阅,1年前) vps上部署java应用合适,还是php合适???(6回/678阅,1年前) 用java改变图片的存储大小(8回/2539阅,1年前) 两种方法Set转List,还有<T>List<T>是什么意思?(8回/2272阅,1年前) 求一个java写的游戏网站发号系统(0回/451阅,1年前) 征集JavaWeb开发,最NB的技术组合!!!(26回/2901阅,1年前) 一个系统生成jar放到另一个系统的问题(2回/221阅,1年前) 被引用的jsp页面如何得到引用页的session对象(2回/1153阅,1年前) 用java编程的窗口,如何去掉最大化按钮(4回/1794阅,1年前) &copy; 开源中国(OsChina.NET) | 关于我们 | 广告联系 | @新浪微博 | 开源中国手机版 | 粤ICP备12009483号-3 开源中国手机客户端: Android iPhone WP7