zoukankan      html  css  js  c++  java
  • Java反编译利器Jad, Jode, Java Decompiler等及其IDE插件

    对于长年使用Java的程序员,大部分应该都会或多或少的使用到反编译软件。毕竟,不可能你所使用到的每一个包都会提供完善的javadoc,而且,有时候代码比javadoc更容易理解。这里将讲述笔者所了解的一些反编译软件以及它们各自的IDE插件版。


    简介 


    现在业内的反编译软件据说有几十种。其中有jad,以及基于jad而开发的其他反编译软件(Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和国产的小颖JAVA源代码反编译专家);还有jode,以及以jode为核心开发的JCavaj Java Decompiler、BTJ (Back To Java)、jEdit’s JavaInsight plugin);还有DAVA等,以及当前笔者最推崇的Java Decompiler。


    在这些反编译软件中,笔者使用过jad,jode,Java Decompiler以及基于这些软件开发的其他软件如Cavaj,小颖等,还有这些软件的eclipse插件版。


    其中,jad是一个使用VC++开发的著名反编译引擎,性能非常快;jode是一个使用java开发的开源的反编译引擎,而Java Decompiler似乎也是java开发的反编译软件,并且这三款软件都有相应的eclipse插件版。


    使用效果对比 


    笔者在eclipse中使用了以上三款软件。

    使用环境为:eclipse Galileo,jad 1.5.8g + jadclipse 3.3.0,jodeEclipse 1.0.6,JD-Eclipse 0.1.3。

    试用结果如下:

    反编译性能: jad == jode > Java Decompiler

    反编译品质:Java Decompiler > jode >= jad


    从速度方面来看,你会明显的感觉到Java Decompiler比较的慢,总是以慢一拍的速度展示反编译后的代码;而jode和jad都表现的非常高速,接近于打开源代码的速度。

    从反编译的品质来看,无疑是Java Decompiler最好。最根本的原因就是,jad和jode的最新版都是在JDK 5.0出来以前发布的,所以对JDK 5.0及以上版本的特性基本上不支持。之所以认为jode的反编译效果比jad好,是因为jad的eclipse插件不怎么好用,自己添加的jar包有时候不能反编译出来。


    插件的使用 


    插件的使用方面,需要稍微的注意一下。

    jode和JD-Eclipse都是直接安装好就可以使用;而jad则需要另外指定jad.exe的路径,可以把jad.exe文件放到“%JAVA_HOME%/bin”目录下,然后在eclipse中按照以下顺序找到jad的设置窗口,Window -> Preferences, 打开Preferences窗口,然后依次选择 Java -> JadClipse,确保"Path to decompiler:"的值为"jad.exe"。

     

    其中,jad和jode还有一些别的IDE的插件版,有需要的话,可以到sourceforge上去搜索。


    总结


    如果使用的是JDK 5.0及以上,请使用Java Decompiler,毕竟效果才是最重要的。如果使用的是JDK 1.4的话,还是建议使用jode,如果不在eclipse中使用的话,可以选择jad,加以复杂的命令,可以实现很多的功能。


    本文主要是稍微介绍一下三款反编译软件的对比结果,所以具体的使用方法等可以见参考资料中的文章。


    参考资料


    Jad官网:http://www.kpdus.com/jad .html (好久没有更新了,下载请使用下面网址)

    jad下载:http://www.varaneckas.com/jad

    jadclipse:http://sourceforge.net/projects/jadclipse/

    jode:http://sourceforge.net/projects/jode/

    jodeeclipse:http://sourceforge.net/projects/jodeeclipse/

    Java Decompiler: http://java.decompiler.free.fr/

     

    java 反编译插件的介绍总结:http://zhidao.baidu.com/question/79760697.html

    http://hi.baidu.com/darmn/blog/item/56678e7f14f81a0129388af7.html

    http://hi.baidu.com/zhangge9477/blog/item/adeced08c9663a3ae8248849.html

  • 相关阅读:
    改造vant日期选择
    css3元素垂直居中
    npm综合
    (转)网页加水印方法
    Mac下IDEA自带MAVEN插件的全局环境配置
    隐藏注册控件窗口
    High performance optimization and acceleration for randomWalk, deepwalk, node2vec (Python)
    How to add conda env into jupyter notebook installed by pip
    The Power of WordNet and How to Use It in Python
    背单词app测评,2018年
  • 原文地址:https://www.cnblogs.com/daichangya/p/12959910.html
Copyright © 2011-2022 走看看