本文转载自: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文件后的查看工具,很实用的.class查看工具。
非常方便查看java class文件 无需安装
java反编译工具(.class文件反编译成.java文件) 解压后点击exe文件打开工具,点击open菜单选择.class文件执行后即生成.java文件 一直在使用的,方便,系统维护必不可少
Java class 文件反编译工具Java class 文件反编译工具
很小巧的javaclass反编译工具 只需要把点击exe文件执行 然后点击打开想要反编译的class文件 在对应的目录下就会生成.java的javabean文件 非常好用
java的反编译工具,我已经用了五年,感觉十分好用。现在分享给大家
很好用的java class文件反编译工具,将class文件设置为该文件打开方式,直接点击class文件就能看到源码。
2、可处理多个*.class文件,可以处理文件夹内的所有文件,甚至可以处理*.jar文件; 3、带有多页面文本编辑器,也可集成在资源管理器中,随时点击右键都可进行操作; 4、支持java语法的高亮显示; 使用说明: ======...
JavaClass加密工具2.2,本工具不错,使用安全,实用方便
用于查看class文件 可用于java文件的反编 是一款比较好用的class文件查看工具
轻松方便的把class文件转化为java文件
Java class文件或jar文件反编译工具 运行jd-gui.exe,在打开的软件中选择file,打开jar文件或class文件即可反编译
java反编译 java工具 class文件
将.class文件反编译为.java文件,可以实现将别人的文件反编译后查看里面的代码。
ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避免源码泄漏或字节码被反编译
java利用jclasslib工具直接修改class文件
JD-GUI 0.3.3 绿色版_Java反编译工具 java 反编译,jar包class文件反编译器.
应用于class、java等各种文件的反编译操作,文件小巧易用
java class文件编译,可查看编译文件。