在Eclipse中反编译Class文件完全详解 |
|
(2008年09月06日)发表于BlogJava-首页技术区 |
|
| 阅读全文... | |
本站相关内容: |
|
|
eclipse中集成jad反编译很早就听说过eclipse可以集成jad,一直没有试过,一直用的小颖和一个叫java decompiler (具体名字记不住了),不过还是没有集成到eclipse中,每次查看源码的时候,还需要找到相应的class文件才可以反编译,比较麻烦,毕竟很多class都是在jar包中,而且路径很深。昨天闲来无聊,随便找了找eclipse集成jad的反编译工具,很简单,过程如下: 直接将 net.sf.jadclipse_3.3.0.jar 复制到eclipse的plugins目录下。 3、eclipse会自动将JadClipse Class File Viewer设置成class文件的缺省打开方式。如果没有默认,可以在Eclipse的Windows——> Perference——>General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”。设置完成后,双击*.class文件,eclipse将自动反编译。我的是默认了,大家有问题的可以试试。 注:对于存在源代码的类,它不会强行反编译,也就是说它还是会用eclipse自带的Class File Viewer查看class文件。这点很重要哦。毕竟反编译的不如人家的源码好。
Eclipse下的Java反编译插件:Jode Decompiler这个工具感觉非常方便 介绍给大家安装方法: help => Software Updates => Find and Install... => Search for new features to install,单击"New Remote Site..." 在URL栏输入 http://www.technoetic.com/eclipse/update 安装好后可以看到Window => Preferences... => Java => Jode Decompiler选项卡。 配置:Window => Preferences... => General => Editors => File Associations找到"*.class"在"Associated editors"里面可以看到"Jode class file viewer"选中它再单击Default按钮. 在Eclipse中展开jar文件,双击class文件即可看到反编译之后的源代码.
JAVA反编译软件名称:MOCHA 软件类型:自由软件(SHAREWARE) 下载地址:http://www.inter.nl.net/users/H.P.van.Vliet/mocha.htm 用WINZIP等将mocha-b1.zip解开得到mocha.zip文件,mocha.zip不须再解开,这个包内包括了反编译的类文件,只需将其拷贝到JDK所在的目录下,如:c:\\jdk\\bin\\此外,须设置路径:SETCLASSPATH=c:\\myclasses;c:\\jdk\\bin\\mocha.zip MOCHA用法: java mocha.Decompiler -v -o Class1.class Class2.class ... java 调用Java虚拟机 mocha.Decompiler 指示要进行JAVA反编译 -v 选择详细输出 -o 选写入已有的.mocha 文件
JAVA反编译工具网站: JavaEye 作者: nolan022 链接: http://nolan022.javaeye.com/blog/192307 发表时间: 2008年05月12日 声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任! 所使用的软件是 DJ Java Decompiler 3.7。 下面是一个有用的参考文档,说明如何批量编译 http://www.udl.es/usuaris/jordim/Progs/Readme.txt 安装好之后,找到它的安装路径,我的是:E:\Program Files\decomp 底下有一个jad.exe文件,将它设置到环境变量path,或者拷到其他已经了环境变量path的地方,或者在cmd中转到此文件目录下。
简单的方法是 jad -o -r -dF:\src -s java F:\classes\**\*.class -o - overwrite output files without confirmation (default: no) 无需确定覆写文件 -r - restore package directory structrure 恢复包目录结构 -s - output file extension (by default '.jad') 如果不设置为-s java,则默认扩展名为.jad 其他的,F:\classes\**\*.class 中的两颗接连的星,表示任意层次的子目录。 OK,这么多就够完成我们的任务了。本文的讨论也很精彩,浏览讨论>> JavaEye推荐
反编译工具jad简单用法反编译工具jad简单用法以下假设jad.exe在c:\java目录下 一、基本用法 Usage: jad [option(s)] <filename(s)> 直接输入类文件名,且支持通配符,如下所示。 c:\java\>jad example1.class c:\java\>jad *.class 结果是将example1.class反编译为example1.jad。将example1.jad改为example1.java即得源文件。
命令行选择的列表 -a - 用JVM字节格式来注解输出 -af - 同 -a,但是注解的时候用全名称 -clear - 清除所有的前缀 -b - 输出多于的括号 (e.g., if(a) { b(); }, default: no) -d <dir> - 指定输出文件的文件目录 -dead -试图反编译代码的dead 部分(default: no) -disass - 不用用字节码的方式反编译 (no JAVA source generated) -f - 输出整个的名字,无论是类还是方法 -ff -输出类的成员在方法之前 (default: after methods) -i - 输出所有的变量的缺省的最初值 -l<num> - 将strings分割成指定数目的块的字符 (default: no) -lnc - 将输出文件用行号来注解 (default: no) -nl - 分割strings用新行字符 newline character (default: no) -nodos -不要去检查class文件是否以dos方式写 (CR before NL, default: check) -nocast - 不要生成辅助文件 -nocode -不要生成方法的源代码 -noconv - 不要转换java的定义符 (default: do) -noctor - 不允许空的构造器存在 -noinner -关掉对内部类的支持 (default: turn on) -nolvt - 忽略局部变量的表信息 -nonlb - 不要输出一个新行在打开一个括号之前 (default: do) -o - 无需确认直接覆盖输出 (default: no) -p - 发送反编译代码到标准输出 STDOUT (e.g., for piping) |
|
互联网相关内容: |
|
| eclipse中集成jad反编译 (2008年06月20日) | |
| Eclipse下的Java反编译插件:Jode Decompiler (2008年04月24日) | |
| JAVA反编译 (2008年01月14日) | |
| JAVA反编译工具 (2008年05月12日) | |
| 反编译工具jad简单用法 (2007年09月26日) | |
| 谈谈JAVA程序的反编译 (2007年10月15日) | |
| 反编译Silverlight 2应用程序 (2008年03月14日) | |
| 反编译工具jad的使用 (2008年04月07日) | |
| JAVA反编译探讨-类型转换 (2008年07月06日) |




