jad反编译常用命令

jad的安装: http://kang.iteye.com/blog/436852
常用命令:
jad是最简单的class反编译为java文件的小工具.

现在就总结一下jad 命令

首先,看一下jad的帮助提示

-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)

其次.常用命令

jad -o -r -sjava -dsrc test.class


tree目录下的所有*.class文件
    jad -o -r -sjava -dsrc tree/**/*.class

    unix可以表示为:jad -o -r -sjava -dsrc 'tree/**/*.class'

指定输出文件的名字的话,用以下的转移命令

jad -p example1.class > myexm1.java

输出带字节码注释和源码的(最常用)

jad -o -a Test.class > ss.java

你可能感兴趣的:(java,jvm,unix,dos,Blog)