前往Shuct.Net首页

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

关于反编译的搜索

jar防止反编译的办法 不要收费的 - CSDN论坛 - CSDN.NET --> 首页 论坛帮助 论坛牛人 论坛地图 CSDN > CSDN论坛 > Java > Java相关 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 shangzc jar防止反编译的办法 不要收费的 [问题点数:20分] 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 只显示楼主 收藏 shangzc shangzc 等级: 结帖率:0% 楼主 发表于: 2008-11-20 13:31:05 jar防止反编译的办法 我试过几个免费的像 proGruad等 效果都不好 同样可以被反编译 并且 里面的一些逻辑也很清晰 好像只是对文件中的变量名和注释 做了处理 想想问问 有没有可以在反编译是不能他生成文件的 防止反编译的东西 (有这个功能大多都收费-_-) 分享到: 更多 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 回复次数:12 mir2ming mir2ming 等级: 结帖率:100% #1 得分:0 回复于: 2008-11-20 17:56:45 建议你去看下反编译的原理,你就明白了,其实也没想象的难,有很多技巧可以自己防止一般的反编译. 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 myjava_024 myjava_024 等级: 结帖率:100% #2 得分:0 回复于: 2008-11-26 10:23:09 楼主看看这篇文章,加混淆的 最近发现大家很多问题都涉及到了混淆器的概念,特发此贴,希望在大家的学习过程中有所借鉴。 最近试用了几个Java混淆器(Java Obfuscator),感觉没有一个完全另人满意的, 于是想干脆自己写一个得了。翻了几页Java虚拟机规范之后突发奇想,别的混淆器 都是在编译好的byte code上做文章,能不能从源码直接编译成经过混淆的class文 件呢?就这样花了一个多星期的时间写了一个Java混淆编译器(Java Obfuscator Compiler)。 Q: 什么是混淆器? A: 由于Java程序运行时是动态连接的,因此编译成的目标文件中包含有符号表, 使得Java程序很容易被反编译,混淆器可以打乱class文件中的符号信息,使反向 工程变得非常困难。 Q: 现有的混淆器有什么问题? A: 现有的混淆器都是对编译好的class文件进行混淆,这样就需要编译和混淆两个 步骤。并不是所有的符号都需要混淆,如果你开发的是一个类库,或者某些类需要 动态装载,那些公共API就必须保留符号不变,这样别人才能使用你的类库。现有 的混淆器提供了GUI或脚本的方式来对那些需要保留的符号名称进行配置,如果程 序较大时配置工作变得很复杂,而程序一旦修改配置工作又要重新进行。某些混淆 器能够调整字节码的顺序,使反编译更加困难,但我经历过混淆之后的程序运行出 错的情况。 Q: Java混淆编译器是如何工作的? A: Java混淆编译器是在Sun JDK中提供的Java编译器(javac)的基础上完成的,修 改了代码生成过程,对编译器生成的中间代码进行混淆,最后再生成class文件, 这样编译和混淆只需要一个步骤就可以完成。另外可以在源程序中插入符号保留指 令来控制哪些符号需要保留,不需要单独的配置。 Q: 如何安装和运行JOC? A: 下载joc.jar (http://www.apusic.com/product/cpsy.htm),运行java -jar joc.jar就可以启动Java混淆编译器,joc的命令行参数和javac完全相同,但增加 了一个新的参数-Xobfuscate,它的用法如下: -Xobfuscate:<level>; 其中<level>;指定混淆级别,可以是以下几种级别: -Xobfuscate:none 不进行混淆 -Xobfuscate:private 对所有private访问级别的元素进行混淆 -Xobfuscate:package 对所有private或package private元素进行混 淆 -Xobfuscate:protected 对所有private, package private, protected元素进行混淆 -Xobfuscate:public 对所有的元素都进行混淆 -Xobfuscate:all 相当于-Xobfuscate:public 如果使用-Xobfuscate不带级别参数,则相当于-Xobfuscate:package Q: 如何使用符号保留指令? A: 除了在命令行用-Xobfuscate参数控制符号混淆级别外,还可以在源代码中使用 符号保留指令来控制那些符号需要保留,符号保留指令是一个Java文档注释指令, 可以插入在类和类成员的文档注释中,例如: /** * This class should preserve. * @preserve */ public class Foo { /** * You can specify which field should be preserved. * @preserve */ private int x; /** * This field is not preserved. */ private int y; /** * You can also preserve methods. * @preserve */ public void hello() {} /** * This method is not preserved. */ private void collect() {} } 如果没有@preserve指令,则根据混淆级别及成员的访问级别来确定符号是否保留 。 对于类的符号保留指令可以附带一个保留级别参数,来控制类成员的符号保留,包 括: @preserve 仅对类名进行保留,类成员的保留根据 -Xobfuscate命令行参数决定 @preserve public 保留所有public成员 @preserve protected 保留所有public和protected成员 @preserve package 保留所有public, protected, package private成 员 @preserve private 保留所有成员 @preserve all 相当于@preserve private Q: JOC有哪些限制? A: 不支持分别编译,必须对所有的源文件进行混淆编译。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 fuyueyue fuyueyue 等级: 结帖率:100% #3 得分:0 回复于: 2008-11-30 19:16:42 如果在windows下可以生成.exe,jsmooth是开源的,不错 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 jaylongli jaylongli 等级: 结帖率:93.82% #4 得分:0 回复于: 2008-12-04 13:42:13 引用 2 楼 myjava_024 的回复:楼主看看这篇文章,加混淆的 最近发现大家很多问题都涉及到了混淆器的概念,特发此贴,希望在大家的学习过程中有所借鉴。 最近试用了几个Java混淆器(Java Obfuscator),感觉没有一个完全另人满意的, 于是想干脆自己写一个得了。翻了几页Java虚拟机规范之后突发奇想,别的混淆器 都是在编译好的byte code上做文章,能不能从源码直接编译成经过混淆的class文 件呢?就这样花了一个多星期的时间写了一个Java混淆编译… 上面这篇文章的作者是做这方面的吧,人才啊 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 MyLiuBin MyLiuBin 等级: 结帖率:40% #5 得分:0 回复于: 2009-01-07 15:07:17 挺好! js混交 javascript-obfuscator破解的文件 或者破解版本谁知道那有? 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 dawn023 dawn023 等级: 结帖率:100% #6 得分:0 回复于: 2009-01-15 17:19:57 最好的还是商业的:Zelix KlassMaster等。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 l_wenb l_wenb 等级: 结帖率:100% #7 得分:0 回复于: 2009-01-20 09:11:34 up 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 wakeUpDoNottLazy wakeUpDoNottLazy 等级: 结帖率:93.33% #8 得分:0 回复于: 2010-06-28 13:42:41 mark 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 qingyuan18 qingyuan18 等级: 结帖率:98.41% #9 得分:0 回复于: 2010-06-28 13:47:55 设置编译的时候不要加-g选项,这样可以降低反编译后的代码真实性 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 xuhuanchao xuhuanchao 等级: 结帖率:95.24% #10 得分:0 回复于: 2010-07-01 21:48:06 2楼,牛人! 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 bastengao bastengao 等级: 结帖率:82.35% #11 得分:0 回复于: 2010-07-01 22:39:20 引用楼主 shangzc 的回复:jar防止反编译的办法 我试过几个免费的像 proGruad等 效果都不好 同样可以被反编译 并且 里面的一些逻辑也很清晰 好像只是对文件中的变量名和注释 做了处理 想想问问 有没有可以在反编译是不能他生成文件的 防止反编译的东西 (有这个功能大多都收费-_-) 防止是不可能的。你的.class 文件是要让虚拟机运行的,而虚拟机是挎平台的,所以 .class 文件应该有规范的。所以,就可以利用它的规范,来反编译。但混淆只是起到混淆的作用,他不可能超越虚拟机。所以你只能找相对,混淆效果比效好的,反编译后,更不容易让人看懂的。proGuard 我用过,还可以。不过它不只混淆,还有一些其它的操作,比如,优化之类的。 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 he198983he10 he198983he10 等级: 结帖率:0% #12 得分:0 回复于: 2011-10-13 17:48:30 我下了个javacompile混淆器,不怎么会用,知道的高手给指点下呗.... 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 写出你眼中的IE11 赢取新年好礼! 勇敢写出你的爱 赢莫文蔚签名大礼 2014年4月微软MVP申请开始了! 陈勇- 敏捷开发现状及发展之路 CSDN高校俱乐部 高校全新改版邀你来学习和挑战 本帖子已过去太久远了,不再提供回复功能。 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace [关闭] [关闭]