美文网首页
Java Jad 反编译

Java Jad 反编译

作者: 赌二八定律 | 来源:发表于2019-08-19 17:42 被阅读0次
    下载运行文件

    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<ext>允许更改输出文件扩展名:

    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<dir> -输出文件目录(必要时创建)
    -dead -尝试反编译代码的死区(如果有)(默认:关闭)
    -disass(不产生Java源代码)
    -f -输出类/字段/方法的完全限定名(默认值:关)
    -ff -在方法之前输出类字段(默认值:在方法之后)
    -i -为所有非最终字段输出默认初始值设定项
    -L<num>-将字符串拆分为最大字符数(默认:关闭)
    -lnc -用行号注释输出(默认值:关)
    -lradix<num> -使用指定的基数(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<num> -在导入后将导入打包到一行中(默认值:3)
    -pv<num> -将具有相同类型的字段打包为一行(默认:关闭)
    -pa<pfx> —生成的源文件中所有包的前缀
    -pc<pfx> —具有数字名称的类的前缀(默认值:_cls)
    -pf<pfx> —具有数字名称的字段的前缀(默认值:_fld)
    -pe<pfx> -未使用的异常名称的前缀(默认值:_ex)
    -pl<pfx> -带有数字名称的局部变量前缀(默认值:cl)
    -pm<pfx> —具有数字名称的方法的前缀(默认值:_mth)
    -pp<pfx> —具有数字名称的方法参数的前缀(默认值:_prm)
    -r -还原包目录结构
    -radix<num> -基数-使用指定的基数(8、10或16)显示整数
    -s<ext> -输出文件扩展名(默认为“.jad”)
    -safe -为消除歧义的方法/字段生成其他强制转换(默认:关闭)
    -space -关键字(if/for/while/etc)和表达式(默认值:off)之间的输出空间
    -stat -显示已处理类/方法/字段的总数
    -t -使用制表符而不是空格进行缩进
    -t<num> -使用空格进行缩进(默认值:4)
    -v -正在解压的显示方法名称
    -8 -将Unicode字符串转换为8位字符串
    使用当前的ANSI代码页(仅限Win32)
    -& -将stderr重定向到stdout(仅限Win32)
    所有单字选项都有三种格式:
    -o -“反转”选项的值

    -o+ —将值设置为“true”或“on”
    -o- 将值设置为“假”或“关”
    可以在环境变量中指定默认情况下要设置的选项
    Jad_选项。
    例如:
    JAD_OPTIONS=-ff+ -nonlb+ -t+ -space+

    相关文章

      网友评论

          本文标题:Java Jad 反编译

          本文链接:https://www.haomeiwen.com/subject/qqresctx.html