开发工具 · Tool

Java反编译工具

小编 · 3月4日 · 2021年

前言

介绍几个自己用过的java反编译工具。

Java反编译工具

JD-GUI

大名鼎鼎的java反编译神器,项目地址:http://jd.benow.ca/ 。图形化操作界面,支持直接打开zip,jar以及自动导入包下的所有文件。操作界面友好,反编译速度非常快,生成的代码质量高。目前遇到的不足是对闭包支持不是很好,多重循环的代码经常性出现问题。

procyon

人在活跃开发的反编译项目,项目地址:https://bitbucket.org/mstrobel/procyon命令行操作,对java 8中的语法支持较好,生成的代码质量高。不足包括速度较慢,命令行不太友好~v~

SecureTeam Java Decompiler(d4j)

基于procyon的可视化反编译工具,在 procyon 的项目主页上能看到推荐,项目地址:http://www.secureteam.net/Java-Decompiler.aspx。个人觉得唯一的改进是可视化,不过易用性比jd-gui差远了。另外保存全部源码经常性出现卡死,导致只能导出部分源码(重新尝试还会有同样的问题!)(⊙﹏⊙)

Bytecode Viewer

集成多个反编译工具的反编译神器,项目地址:https://bytecodeviewer.com。可视化操作,支持zip,jar等多种格式,但是不支持从单个文件中打开整个项目(jd-gui在这点和速度上比bytecode viewer要强)。由于首次启动需从网上下载动态链接库,所以需要联网。默认启动界面包含两个面板,其中一个使用jd-gui来反编译。可通过设置选择其他的工具进行反编译,并选择是显示java源码还是字节码。改变设置后需关闭文件,重新打开方可生效。

总结

个人推荐使用jd-gui作为主要的反编译工具,毕竟反编译速度、代码质量以及易用性等摆在那里。由于jd-gui反编译出来的代码可能会存在语法问题,Bytecode Viewer可作为补充和对照。遇到问题的时候打开Bytecode Viewer,与其他反编译工具的结果进行对比,基本上就能把问题搞定了。

0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!