Java Jad 反编译

下载运行文件

https://varaneckas.com/jad/

添加环境变量,dos命令反编译class文件

这是JAD-快速Java反编译程序的自述文件。
JAD主页:http://www.kpdus.com/jad.html
版权所有2001 Pavel Kouznetsov(jad@kpus.com)。
0。请阅读JAD主页上的免责声明。

1。安装。
将jad.zip文件解压到硬盘上任何合适的目录中。
这将创建两个文件:
-名为“jad.exe”(Windows的可执行文件)
或“jad”(
n*x)
-此自述文件
不需要其他设置。

2。如何使用JAD
反编译一个Java类文件“example1.class”
键入以下内容:

jad example1.class

此命令在当前目录中创建文件'example1.jad'。
如果这样的文件已经存在,JAD会询问您是否要覆盖它。
选项-o允许在没有确认的情况下覆盖。
可以省略.class扩展名和/或在的名称中使用通配符
输入文件。
选项-s允许更改输出文件扩展名:

jad -sjava example1.class

这个命令创建文件“example1.java.”。
使用时要小心
选项-o和-sjava一起使用,因为jad可能会意外覆盖
您自己的源文件。
JAD使用Java类名作为输出文件名。
例如,如果类
文件“示例1 .class”包含Java类“TEST1”,
然后JAD将创建
文件“test1.jad”而不是“example1.jad”。
如果要指定
您自己的输出文件名使用输出重定向:

   jad -p example1.class > myexm1.java

选项-d允许您为输出文件指定另一个目录,
默认情况下,在当前目录中创建。
例如:jad -o -dtest -sjava .class
(或JAD-O-D测试-S Java
.类,具有相同的效果)
此命令可解压缩当前目录中的所有.class文件
将所有输出文件放在.test中。
如果要对Java类的整个树进行反编译,
使用以下命令:

   jad -o -r -sjava -dsrc tree/**/*.class
   这里更改src地址  和tree地址目录即可

此命令将所有.class文件解压缩到
“tree”的子目录并在子目录中创建输出文件
根据类的包名称,
返回“src”。
例如,如果文件
“tree/a/b/c.class”包含包“a.b”中的类“c”,
然后
输出文件的名称为“src/a/b/c.java”。
注意前面使用的“两颗星”通配符(“**”)。
命令。
它是由jad处理的,而不是命令shell处理的,依此类推。
unix最后一个参数应该是单引号:

   jad -o -r -sjava -dsrc 'tree/**/*.class'

如果你想检查解压的准确性,或者

好奇的是,
有一个选项-a告诉jad注释输出
使用Java虚拟机字节码。
JAD支持内部类和匿名类。
当jad在输入文件名中展开通配符时,
它自动跳过匹配的内部类。
在Unix上,如果有超过
命令行中指定的一个类。
JAD在其顶级目录中查找内部类
容器类。

三.命令行选项列表。
JAD接受以下选项:
-a -用JVM字节码注释输出(默认值:关)
-af -与-a相同,但在注释时输出完全限定的名称
-clear -清除所有前缀,包括默认前缀(可以缩写为-cl)
-b -输出冗余大括号(例如,如果(a)b();,默认值:关)
-d

-输出文件目录(必要时创建)
-dead -尝试反编译代码的死区(如果有)(默认:关闭)
-disass(不产生Java源代码)
-f -输出类/字段/方法的完全限定名(默认值:关)
-ff -在方法之前输出类字段(默认值:在方法之后)
-i -为所有非最终字段输出默认初始值设定项
-L-将字符串拆分为最大字符数(默认:关闭)
-lnc -用行号注释输出(默认值:关)
-lradix -使用指定的基数(8、10或16)显示长整数
-nl -在换行符上拆分字符串(默认值:off)
-nocast -不生成辅助强制转换
-nocode -不要为方法生成源代码
-不转换Java标识符(默认:转换)
-noctor -禁止空构造函数
-nodos -不检查以DOS模式写入的类文件(cr before nl,默认值:check)
-nofd -不要通过在字段名中添加签名来消除同名字段的歧义(默认值:do)
-noinner -关闭对内部类的支持(默认:打开)
-nolvt -忽略局部变量表信息
-nonlb -在左大括号前不输出换行符(默认值:do)
-o -不经确认覆盖输出文件(默认:关闭)
-p -将反编译代码发送到stdout(例如,用于管道)
-pi -在导入后将导入打包到一行中(默认值:3)
-pv -将具有相同类型的字段打包为一行(默认:关闭)
-pa —生成的源文件中所有包的前缀
-pc —具有数字名称的类的前缀(默认值:_cls)
-pf —具有数字名称的字段的前缀(默认值:_fld)
-pe -未使用的异常名称的前缀(默认值:_ex)
-pl -带有数字名称的局部变量前缀(默认值:cl)
-pm —具有数字名称的方法的前缀(默认值:_mth)
-pp —具有数字名称的方法参数的前缀(默认值:_prm)
-r -还原包目录结构
-radix -基数-使用指定的基数(8、10或16)显示整数
-s -输出文件扩展名(默认为“.jad”)
-safe -为消除歧义的方法/字段生成其他强制转换(默认:关闭)
-space -关键字(if/for/while/etc)和表达式(默认值:off)之间的输出空间
-stat -显示已处理类/方法/字段的总数
-t -使用制表符而不是空格进行缩进
-t -使用空格进行缩进(默认值:4)
-v -正在解压的显示方法名称
-8 -将Unicode字符串转换为8位字符串
使用当前的ANSI代码页(仅限Win32)
-& -将stderr重定向到stdout(仅限Win32)
所有单字选项都有三种格式:
-o -“反转”选项的值
-o+ —将值设置为“true”或“on”
-o- 将值设置为“假”或“关”
可以在环境变量中指定默认情况下要设置的选项
Jad_选项。
例如:
JAD_OPTIONS=-ff+ -nonlb+ -t+ -space+

posted @ 2022-03-25 16:24  8848-自律即自由  阅读(153)  评论(0编辑  收藏  举报