本文转载自:http://qixinglu.com/post/some_handle_java_class_file_tools.html
一般来说手动修改二进制文件是件苦差事,有源码在手不如直接修改重新编译。但有些软件是不开源的,又想修改它的功能以便更好使用,就想反编译,但很 多代码都是混淆过的,反编译后几乎不能阅读,如果要改的的地方不是很多,比如最常做的是反转条件和替换字符串,这还能直接从字节码下手。
反编译器
JD Java Decompiler
试了几个,觉得这个最好用,反编译首选。可惜是闭源的,但非商用免费,版本也比较新。用 C++ 写成的,有 GUI,用的是 wxWidgets,所以跨平台,独立程序,就一个文件,速度还很快。支持直接打开 jar 文件,批量保存,代码高亮,多标签,字符串查找。还有 eclipse 的插件版本。
JAD Java Decompiler
这个比较老牌编译器了,命令行的,这个也是闭源的,非商用免费,很多编译器都是都是它的一个前端而已,会命令的话直接用它好了,选项也很丰富,尤其是输出格式。但对新版的 Java 特性不如 JD,所以候选。它也有开源的 eclipse 插件 JadClipse 。
jode
开源也有 jode,但是太古老了,不推荐了,反正我是上面两个配合用,都反编译一份,以 JD 为首选,对于个别错误的地方参考 JAD 的结果,然后手工收复,试过把 microemulator 的 demo 反编译然后重新编译,运行通过。
字节码处理
javap
这个命令是,jdk 自带的,作用就是输出字节码,偶然配合 grep 来看看也好。
jclasslib bytecode viewer
jclasslib 是修改 class 文件的 java 库,可是我还不会用,但它自带了一个字节码查看器,可以说是 javap 的 GUI。分门别类显示 class 里面的元素,还带点击跳转链接。不带编辑功能,还得用十六进制编译器参照 JVM 的指令代码来修改。
Java Bytecode Editor
简称 JBE,这个就是上面的修改版,就是多加一个编辑功能,免去查指令代码的痛苦。非常使用,不需要用到 jclasslib 库的下载这个好了。
Java Class File Editor
虽然版本有点古老,但是还是个功能非常强大的修改器,能修改 class 的方方面面,最常用的是修改常量,比如字符串,用法比较简单,相信程序员也会用。也可以改字段、方法的属性,很强悍。
也有字节码查看功能,虽然可编辑的,但不知道为什么保存不了。
总结
上面几个各有优缺点,配合来用互补,对于混淆过的代码反编译后难以阅读,更不用说编译回去,但起码能参考一下,方便定位要改的地方,改好后在反编译一次,diff结果,看看影响到那些代码。
最后顺便纪念一下逝去的 Sun,这个伟大的公司。
相关推荐
Java Class文件是Java源代码经过编译器处理后的二进制形式,它们包含了程序的结构信息,如类、接口、变量、方法等定义。在Java开发过程中,有时我们需要查看或分析这些Class文件,以理解程序运行原理、调试或逆向...
本文将详细介绍Java Class文件反编译工具——jd-gui。 jd-gui是一个开源的Java反编译工具,由Jikes项目开发者创建。它允许开发者在图形用户界面中直接查看Java源代码,而无需手动将Class文件转换回源代码。这对于...
标签再次强调了这是一个用于将.class文件反编译为.java文件的工具,这表明其主要功能和适用场景。 在压缩包子文件的文件名称列表中,我们看到了"jd-gui-0-2"。这很可能是反编译工具的名字,例如JAD GUI的一个版本号...
Java 修改 Class 文件工具有很多,其中“JBE”(全称可能为 Java Bytecode Editor 或类似)是一个专门用于查看和编辑 Java 字节码的工具。它允许开发者在编译后的级别上操作 Java 类,这对于调试、逆向工程、优化...
### Java反编译工具:将.class文件转换为.java文件 #### 概述 在软件开发领域,有时我们可能需要分析第三方库或者开源项目的内部结构,这时就需要借助于反编译工具来帮助我们阅读和理解其源码。Java作为一种广泛...
1. **兼容性**:加密后的Class文件需要确保能在目标JVM上正常运行,因此加密工具需要处理好与不同版本JVM的兼容问题。 2. **性能影响**:加密可能会对程序的运行效率产生一定影响,因为解密过程需要额外的时间和资源...
Java Class反编译工具是程序员在处理已编译的字节码文件时不可或缺的辅助工具。这类工具的主要功能是将`.class`文件转换回可读性强的`.java`源代码,帮助开发者理解或修改已有的Java程序,尤其在没有源代码的情况下...
非常方便查看java class文件 无需安装
Java class 文件反编译工具Java class 文件反编译工具
Java Class文件查看器是一款专为Java开发者设计的实用工具,它允许用户查看和分析.class文件,这是Java编译器将源代码编译后的二进制形式。了解如何使用这类工具对于理解和调试Java应用程序至关重要,尤其是在处理已...
Java Class文件反编译工具是开发者在处理已编译的.class文件时的一种实用工具,它能够将二进制的Class文件转换回可读性更强的源代码格式,这对于理解和调试已封装的库或分析未知的Java程序至关重要。本文将详细介绍...
"java class文件或jar文件反编译工具.rar"正是这样一个资源,包含了一个名为jd-gui.exe的反编译工具,可以帮助我们将这些二进制文件转换回可读的Java源代码。 jd-gui.exe是一个图形用户界面的Java反编译器,它由JDI...
本篇文章将详细介绍三种常用的Java class文件反编译工具:DJ Java Decompiler、jd-gui和XJad2.2 Decompiler。 1. DJ Java Decompiler: DJ Java Decompiler是一款功能强大的Java反编译器,它能够将.class文件转换回...
Class文件采用一种特殊的二进制格式,这种格式具有固定结构,主要包括以下几个部分: 1. 魔数:标识文件为Java类文件,固定为0CAFEBABE。 2. 版本号:包含字节码版本和常量池的版本信息,用于确保JVM能够正确解析。...
这款工具能够对编译后的`.class`文件进行加密处理,使得未经授权的用户无法轻易读取或反编译代码,从而提高代码的安全性。 ClassFinal的特点在于其便捷性和兼容性。它支持直接加密`.jar`或`.war`包,这意味着开发者...
它不仅适用于单个Class文件,还可以处理包含多个Class文件的.jar档案。在Java开发中,JD-GUI提供了一个便捷的方式,让开发者能够快速查看和学习已编译的库或组件的内部工作原理,即使这些库或组件没有提供源代码。 ...
这是一个名为JD-GUI的开源工具,它允许开发者直观地查看Java字节码(.class文件)的源代码。通过JD-GUI,你可以看到类结构,包括类名、方法、变量等,并且可以方便地浏览和理解代码逻辑。这个工具对于调试、学习和...
本资源提供的是一款名为JD-GUI的免费Java反编译工具,它可以帮助开发者将.class文件转换回易于理解的.java源代码格式。 JD-GUI是一款图形用户界面应用,设计简洁,使用方便。它允许用户直接打开.class文件,快速...
2、可处理多个*.class文件,可以处理文件夹内的所有文件,甚至可以处理*.jar文件; 3、带有多页面文本编辑器,也可集成在资源管理器中,随时点击右键都可进行操作; 4、支持java语法的高亮显示; 使用说明: ======...