Java反编译工具 Eclipse Class Decompiler 2.0 已发布,支持多种反编译器,求加精置顶

chensuper 2016-05-14 11:01:39
加精
Eclipse Class Decompiler是一款Eclipse插件,整合了多种反编译器,和Eclipse Class Viewer无缝集成,能够很方便的使用插件查看类库源码,进行Debug调试。

Eclipse Class Decompiler对JDK的最低要求为JDK1.5, 能反编译和debug各版本的Class文件,支持JDK8的Lambda语法,同时支持中文等非Ascii码字符集的解析,支持Eclipse 3.5及以上所有版本的Eclipse。

目前本插件下载量已超过16万,日均下载量超过500次,在Eclipse 官方市场 MarketPlace 中排名前10。

为保证反编译插件能支持最新版的Eclipse,本插件不再提供离线下载方式安装,请大家通过Eclipse Marketplace进行安装,在线安装源放置在 github.org 上,不会像sourceforge一样被墙。

插件在 Eclipse Marketplace 上的项目地址:https://marketplace.eclipse.org/content/eclipse-class-decompiler

喜欢本插件的同学可以帮忙点个赞:https://marketplace.eclipse.org/user/login/sso?destination=node/472922/toggle_favorites

安装插件请 拖拽 Install按钮 到Eclipse工具栏或者其他窗口区域(编辑器区域除外)


或采用Eclipse Marketplace 搜索 Decompiler 或者 反编译 进行更新



本插件支持Windows,Linux,Macosx 32位及64位操作系统。

低版本 Eclipse 不包含 Eclipse MarketPlace Client,可以通过以下地址在线更新:

http://cnfree.github.io/Eclipse-Class-Decompiler/update

插件使用说明:

下图为Eclipse Class Decompiler的首选项页面,可以选择缺省的反编译器工具,并进行反编译器的基本设置。缺省的反编译工具为FernFlower,FernFlower 更为先进一些,支持泛型、Enum、注解等JDK1.5以后才有的新语法,同时也支持JDK8 的Lambda表达式,还能进行Debug调试。最重要的是它开源,我重新修改并编译了它的代码,让它能在JDK5下运行,原版的FernFlower需要JDK7支持。



首选项配置选项:

1.重用缓存代码:只会反编译一次,以后每次打开该类文件,都显示的是缓存的反编译代码。
2.忽略已存在的源代码:若未选中,则查看Class文件是否已绑定了Java源代码,如果已绑定,则显示Java源代码,如果未绑定,则反编译Class文件。若选中此项,则忽略已绑定的Java源代码,显示反编译结果。
3.显示反编译器报告:显示反编译器反编译后生成的数据报告及异常信息。
4.使用Eclipse代码格式化工具:使用Eclipse格式化工具对反编译结果重新格式化排版,反编译整个Jar包时,此操作会消耗一些时间。
5.使用Eclipse成员排序:使用Eclipse成员排序对反编译结果重新格式化排版,反编译整个Jar包时,此操作会消耗大量时间。
6.以注释方式输出原始行号信息:如果Class文件包含原始行号信息,则会将行号信息以注释的方式打印到反编译结果中。
7.根据行号对齐源代码以便于调试:若选中该项,插件会采用AST工具分析反编译结果,并根据行号信息调整代码顺序,以便于Debug过程中的单步跟踪调试。
8.设置类反编译查看器作为缺省的类文件编辑器:默认为选中,将忽略Eclipse自带的Class Viewer,每次Eclipse启动后,默认使用本插件提供的类查看器打开Class文件。


插件提供了系统菜单,工具栏,当打开了插件提供的类反编译查看器后,会激活菜单和工具栏选项,可以方便的进行首选项配置,切换反编译工具重新反编译,以及导出反编译结果。






打开项目路径下的Class文件,如果设置类反编译查看器为缺省的查看器,直接双击Class文件即可,如果没有设置为缺省查看器,可以使用右键菜单进行查看。



同时插件也支持直接将外部的Class文件拖拽到Eclipse编辑器中进行反编译。

类反编译查看器右键菜单包含了Eclipse自带类查看器右键菜单的全部选项,并增加了一个“导出反编译源代码”菜单项。



Eclipse Class Decompiler插件也提供了反编译整个Jar文件或者Java包的反编译。该操作支持Package Explorer对包显示布局的操作,如果是平铺模式布局,则导出的源代码不包含子包,如果是层级模式布局,则导出选中的包及其所有的子包。



Debug调试:可以在首选项选中对齐行号进行单步跟踪调试,和普通的包含源代码时的调试操作完全一致,同样的也可以设置断点进行跟踪。当透视图为Debug时,插件自动生成行号并进行对齐方便调试代码,无需进行任何设置。



博文地址:http://www.blogjava.net/cnfree/archive/2016/05/13/430485.html
...全文
7238 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
卡布奇亚 2019-07-14
  • 打赏
  • 举报
回复
为什么我现在搜索不到了
小怪丶 2017-09-13
  • 打赏
  • 举报
回复
已经测试了,不错支持
weixin_37151831 2016-12-24
  • 打赏
  • 举报
回复
学习一下,谢谢提供!
风吹麦浪2015 2016-07-15
  • 打赏
  • 举报
回复


debug不了很让人蛋疼啊
风吹麦浪2015 2016-07-15
  • 打赏
  • 举报
回复


debug不了 是什么原因
风吹麦浪2015 2016-07-15
  • 打赏
  • 举报
回复
都 debug不了 难道是我的eclipse 版本的问题
chensuper 2016-05-24
  • 打赏
  • 举报
回复
引用 8 楼 baidu_19760977 的回复:
支持,用着蛮好的
有什么好的建议可以提出来,呵呵。 最近更新的比较频繁,已经到2.4版本了,修改了一些debug相关的bug。
ljheee 2016-05-24
  • 打赏
  • 举报
回复
666666666666666666666
山城忙碌人 2016-05-24
  • 打赏
  • 举报
回复
收藏一下,肯定能用上,谢谢楼主!楼主,你是个好人!
magic_nian 2016-05-23
  • 打赏
  • 举报
回复
支持,用着蛮好的
qq_35078664 2016-05-22
  • 打赏
  • 举报
回复
学习一下,谢谢提供!
chensuper 2016-05-18
  • 打赏
  • 举报
回复
引用 1 楼 tianfang 的回复:
已经 安装了jd,再安装貌似没有启动
这类插件只能安装一个,因为涉及到默认编辑器的问题,jd eclipse 每次启动,会强制让自己成为默认编辑器,没有选项可以去除。 jd eclipse比较简单,我看过它的代码,应该不支持 debug 调试,仅仅就是反编译代码。 不过有个第三方插件支持。 另外jd本身的硬伤就是不支持jdk8的lambda表达式。
chensuper 2016-05-18
  • 打赏
  • 举报
回复
特别感谢版主帮忙置顶
killer-leon 2016-05-18
  • 打赏
  • 举报
回复
http://blog.csdn.net/u011627980/article/details/51362799 http://blog.csdn.net/u011627980/article/details/50800715 http://blog.csdn.net/u011627980/article/details/50800574 http://blog.csdn.net/u011627980/article/details/50800474 http://blog.csdn.net/u011627980/article/details/50765363 http://blog.csdn.net/u011627980/article/details/50601309 http://blog.csdn.net/u011627980/article/details/50371859
line_us 2016-05-16
  • 打赏
  • 举报
回复
和Eclipse Class Viewer无缝集成,能够很方便的使用
tianfang 2016-05-16
  • 打赏
  • 举报
回复
已经 安装了jd,再安装貌似没有启动
JAD本身是一个命令行工具,没有图形界面,我之前上传的Cavaj Java Decompiler就是以jad为内核,加了一个图形界面…… 反编译工具jad简单用法   以下假设jad.exe在c:\java目录下   一、基本用法   Usage: jad [option(s)]   直接输入类文件名,且支持通配符,如下所示。   c:\java\>jad example1.class   c:\java\>jad *.class   结果是将example1.class反编译为example1.jad。将example1.jad改为example1.java即得源文件。   二、Option -o   不提示,覆盖源文件   三、Option -s   c:\java\>jad -sjava example1.class   反编译结果以.java为扩展名。   四、Option -p   将反编译结果输出到屏幕   c:\java\>jad -p example1.class   将反编译结果重定向到文件   c:\java\>jad -p example1.class>example1.java   五、Option -d   指定反编译的输出文件目录   c:\java\>jad -o -dtest -sjava *.class   命令行选择的列表   -a - 用JVM字节格式来注解输出   -af - 同 -a,但是注解的时候用全名称   -clear - 清除所有的前缀   -b - 输出多于的括号 (e.g., if(a) { b(); }, default: no)   -d   - 指定输出文件的文件目录   -dead -试图反编译代码的dead 部分(default: no)   -disass - 不用用字节码的方式反编译 (no JAVA source generated)   -f - 输出整个的名字,无论是类还是方法   -ff -输出类的成员在方法之前 (default: after methods)   -i - 输出所有的变量的缺省的最初值   -l - 将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) 很多人困扰,反编译之后中文显示乱码问题,其实显示的不是乱码,是unicode字符。 -8 - 将Unicode字符转换为ANSI字符串,如果输出字符串是中文的话一定要加上这个参数才能正确显示。 最常用的反编译指令如下所示: Jad –d D:\javasource –s .java -8 javatest.class 这条指令将当前目录下的javatest.class反编译javatest.java并保存在D:\javasource目录里,其中的提示输出为中文,而不是Unicode代码。
使用DJ Java Decompiler你可以反编译class文件并且可以保存为文本文件或其它格式,它很容易使用。DJ Java Decompiler是Windows 2000,Windows XP,Windows 2003,Windows Vista,Windows 7环境下的反编译,它可以从已经编译的二进制class文件重新创建最初的源代码(比如说Java applets)。 DJ Java Decompiler可以反编译复杂的Java applets和二进制文件,产生准确的源代码。DJ Java Decompiler是一个标准的Windows应用程序;它甚至不需要你的机器上安装有JAVA开发环境。DJ Java Decompiler不仅是一个JAVA反汇编器,而且是一个全功能的有着语法高亮的带用户界面的JAVA编辑器。使用DJ Java Decompiler非常容易。选择你想反编译class文件,或者仅仅是双击想反编译class文件。DJ Java Decompiler同时支持在界面上拖拽的方式来反编译class文件。在Windows资源管理器的鼠标右键菜单中你也可以立即看到源代码。你可以在你的电脑硬盘中或者在一个网络磁盘(你有全部的访问权限或者仅仅是修.jad文件改默认的输出目录)中反编译class文件。 你不需要安装有Java虚拟机或者其它任何Java SDK环境,但是你安装了以上环境之后,DJ Java Decompiler就可以创建、编译、运行JAR文件,在浏览器中运行applet小程序。使用DJ Java Decompiler你可以反编译一次性反编译多个class文件。
java反编译工具jad 1.5.8g支持 jdk1.5,jdk1.6。说明很多记住一个万能的命令基本就够用了。jad -sjava -r -8 -o **\*.class ---------------This is README file for Jad - the fast Java Decompiler.Jad home page: http://www.kpdus.com/jad.htmlCopyright 2001 Pavel Kouznetsov (jad@kpdus.com).0. Please read the disclaimer on the Jad home page.1. Installation.Unzip jad.zip file into any appropriate directory on your hard drive.This will create two files: - an executable file named 'jad.exe' (Windows *) or 'jad' (*n*x) - this README fileNo other setup is required.2. How to use JadTo decompile a single JAVA class file 'example1.class' type the following: jad example1.classThis command creates file 'example1.jad' in the current directory.If such file already exists Jad asks whether you want to overwrite it or not.Option -o permits overwriting without a confirmation.You can omit .class extension and/or use wildcards in the names ofinput files.Option -s allows to change output file extension: jad -sjava example1.classThis command creates file 'example1.java'. Be careful when usingoptions -o and -sjava together, because Jad can accidentally overwriteyour own source files.Jad uses JAVA class name as an output file name. For example, if classfile 'example1.class' contains JAVA class 'test1' then Jad will createfile 'test1.jad' rather than 'example1.jad'. If you want to specifyyour own output file name use the output redirection: jad -p example1.class > myexm1.javaOption -d allows you to specify another directory for output files,which are created, by default, in the current directory. For example: jad -o -dtest -sjava *.class (or jad -o -d test -s java *.class, which has the same effect)This command decompiles all .class files in the current directory <

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧