`
wwei616
  • 浏览: 9262 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

反编译工具JAD的使用

    博客分类:
  • Java
阅读更多
class 文件和jad.exe放在一个目录下
开始 --> 运行 --> cmd , 找到jad 所在的目录
jad  -ff -nl  -space -8 -nonlb -s .java *.class
jad是非常出色的免费java字节码反编译器,相信不少人都使用过。我坚信“一段可以工作的代码就是最好的参考文档”,因此使用jad使我从前人的工作中获益匪浅:)
jad是一个基于命令行的程序,提供了大量的命令行选项,可能很多人还不熟悉,我就介绍几个对大家有帮助的。
-8:   把Unicode编码的字符转换成ASCII输出,这样程序中的中文就会原样输出,而不是令人费解的uxxxx这种形式
-nl:   把字符串按照
切分输出,这样很长的字符串也不至于都放在一行,增强了可读性。
JAVA手机网[www.cnjm.net]
-ff:   把数据成员放在方法之前,这样就符合大家写程序的习惯了
-space:   在if, while等关键字和表达式之间加入空格,这是java的良好编程风格
-nonlb:   不在开大括号(也就是左大括号)前加回车,这是大部分java程序员的习惯风格,大家可以根据自己的习惯选用
经过这样的配置,jad输出的java代码几乎跟手写的没有什么两样(当然格式要比手写的还要规范)
为了更加方便(因为我very very lazy~~),我还编写了一个批处理文件,把它和.class建立关联,这样我只要用鼠标双击任意一个.class文件,对应的java代码直接就在我的UltraEdit里打开,我现在几乎忘了java和class文件的区别了:-D。请把附件里的jad.exe和jadplus.bat同时放到 PATH中的一个目录下,我一般就放到C:WINNT下面,如果是WinXP则是C:Windows。
==========================================================
jadplus.bat:
@if not exist %~n1.java jad -p -ff -nl -space -8 -nonlb %1 > %~n1.java
@uedit32 %~n1.java
==========================================================
注:
1 -p的意思是直接输出到屏幕,这样方便我重定向输出到一个java文件。
2 jad前面加了个判断,如果对应的java文件不存在才进行反编译,避免覆盖掉原来的java代码。
3 如果你习惯用别的java编辑器,那么修改第二行把uedit32改成你习惯的java编辑器即可。
批量反编译
但是只能对JDK1.4.2和之前的版本编译的程序反编译,而JDK5.0后的就无能为力了,但是可以下载JAD.EXE来逐个反编译 CLASS文件,不过如果碰到有几十个或几百个文件夹,并且目录很深的时候,就麻烦了,这个给出一个直接使用命令行反编译整个目录的方法:使用jad批量反编译
jad -o -r -sjava -d src bin/**/*.class
src: 是反組後的目錄
bin:指 package 開頭
将bin里面所有的.class反编译到src下面 
如何在Eclipse 3.1.1上安装jadclipse[java的反编译工具]
jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高。可惜用起来不太方便。还好

找到eclipse下的插件,叫jadclipse,安装好之后,只要双击.class文件,就能直接看源文件,包括jar

包中的class文件,也可以直接反编译。

1.下载jad1.5.8e
http://www.kpdus.com/jad.html#download
下载后解压。解压缩后将jad.exe拷贝到JRE的bin目录下,如\Java\jre1.5.0_06\bin

2.下载 jadclipse_3.1.0.jar
http://jaist.dl.sourceforge.net/sourceforge/jadclipse/jadclipse_3.1.0.jar
将jadclipse_3.1.0.jar复制到D:\Program Files\eclipse\myplugin\eclipse\plugins目录下(用的是link方式安装插件的)。

3. 启动Eclipse后,在Windows(窗口)-->Perference(首选项)-->Java下面应该会多出一个JadClipse 目录,相关的设置可以在此修改配置jadclipse:设置path to decompiler为jad.exe的全路径,如:F:\Java \jre1.5.0_06\bin\jad.exe,在Directory for temporary files中指定临时文件的路径,如:G: \Java\eclipse-SDK-3.0-win32\temp

4、在Eclipse的 Windows-->Perference-->General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”

5、安装完成,双击class文件,Eclipse将自动反编译了。

6、把*.java 和*.class文件放在同一文件夹下,在反编译时它回自动去寻找*.java的文件。

转自http://blog.csdn.net/GOALSTAR/archive/2007/06/04/1637231.aspx
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics