java怎么反编译,java反编译命令用法

  java怎么反编译,java反编译命令用法

  虽然有很多Java反编译工具,但jd-gui是个人最容易使用的。当然jad也很好。Jd-gui主要提供图形界面,操作简单,但是jd-gui已经很久没有更新了。java 7已经存在很久了,jd-gui在反编译Java 7的类文件时会遇到一些语法不支持的问题。

  这是java7支持的开关上使用的字符串。看看jd-gui反编译的结果。

  反编译的结果看起来有点迂回。当然,结果是一样的,但是代码的意图并不直接。

  我们来看看java 7资源的自动关闭。

  Jd-gui反编译结果:

  我用的jd-gui反编译不正确,我的版本可能不是最新的。

  我们来看看java 7的语法糖函数:

  Jd-gui反编译结果:

  反编译的结果是正确的。综上所述,jd-gui不支持java 7资源自动关闭语法。

  介绍两个支持java 7语法的反编译工具。是cfr和procyon。你可能听说过。打个比方看看效果如何。

  (cfr概述

  Cfr官网链接:

  Java代码

  cfrwilldecompilemodernjavafeatures-Java 8 lambdas(preandpostjavabeta 103更改),Java7Stringswitchesetc,butiswritenenetion

  这是官网的描述,Jar在附件里提供了下载。

  语法:

  要反转单个类文件:

  Java代码

  Java-jar CFR _ 0 _ 59 . jarswitchtest . class

  反向编译整个Jar包:

  Java代码

  Java-jar CFR _ 0 _ 61 . jar Java 7 _ jar . jar-输出目录d :/Java/tmp

  以下是具体使用,以上面的类为例,使用cfr进行反编译:

  这和jd-gui的结果是一样的,说明java7语法糖只是处理干净了,即使逆向编译也是原来的数据类型。

  作为通过cfr反编译java 7自动关闭语法的结果,close方法被显式地添加到finally中。

  如果在cfr反编译开关字符串中使用Goto语句,与Goto中的equals字符串进行比较,会比jd-gui反编译干净。

  可见cfr还是很有用的。

  (2)原花青素简介

  Procyon官网链接:

  使用语法:

  帮助

  Java代码

  java-jardecompiler.jar

  反向编译单个类文件

  Java代码

  Java-jar procyon-decompiler-0 . 5 . 24 . jarautocloseableexample . class

  反编译整个Jar包

  Java代码

  Java-jar procyon-decompiler . jar-jarmyjar . jar-oout

  提醒:

  Java代码

  Java7isrequiredtorun

  Procyon需要java 7环境。

  以上面的类为例,看看procyon反编译的结果。

  像cfr一样,procyon最终通过反编译显式地关闭资源。

  Procyon反编译java 7语法糖以显示原始数据类型。

  可以看到,反编译procyon开关字符串的结果是最直接的。

  它还支持procyon反编译Jar。

  反编译器也有喀拉喀托。我用Python 2.7编译的。电脑是Python 3.3。如果它不能运行,就不会被测试。感兴趣的朋友请自测。

  链接到:

  Java代码

  github.com/story耶勒/喀拉喀托33559号

  如果需要逆向编译java 7的类,我个人建议先用procyon,再用cfr。

  文章为原创,转载请注明出处。请指出不好的地方。如果你需要但无法下载附件,请发邮件给1329186624@qq.com。发送附件cfr和procyon。谢谢你。

  全文结束。

java怎么反编译,java反编译命令用法