大多商业软件,会对程序进行加密、加壳等安全举措以防范软件被破解,进而促使反编译越来越难。反编译是一个对目标可执行程序进行逆向剖析,因而得到源代码的过程。尤其是像Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。
我们晓得,在代码支撑方面,JDK1.7引入了字符串Switch、泛型插口改进等新功能,1.8降低了lambda表达式、方法传递、多重注解等新特点,这促使反编译工具的编撰难度加强。明天我们盘点一下目前依然可用的、相对功能很强悍的Java反编译工具(Eclipse插件不做评价),比较老的反编译工具很难支持Java8及其以上版本。
1、Java反编译器JD-GUI
JD-GUI是一个用C++开发的Java反编译工具,由PavelKouznetsov开发linux培训班,支持Windows、Linux和苹果MacOs三个平台。并且提供了Eclipse平台下的插件JD-Eclipse、IntelliJ的插件JD-IntelliJ。JD-GUI不须要安装,直接点击运行,可以反编译jar,class文件。
最新版本1.4.0,官方网站:。
2、Java反编译器procyon-decompiler及其window下独立UI工具luyten
Procyon-Decompiler支持JDK1.8类的反编译,在好多方面做得十分不错,如反编译匿名类、内部类、Java8Lambda等等。Procyon-Decompiler支持JDK1.8类的反编译,在好多方面做得十分不错:字符串的Switch、枚举申明方面、注解方面、匿名类、内部类、Java8新插口规范、Java8Lambda表达式、Java8方式传递等。
luyten是Procyon的GUIlinux反编译class文件,是一款操作简单、功能实用的java反编译工具,软件支持*.JAR、*.zip、*.class等类型文件的反编译操作,还原度十分高,支持更多功能设置,如显式导出、类型、合成组件等等linux怎么读,用户可依照不同的需求选择合适的显示项目,结果更明了。
luyten的最新版本0.53,官方网址:,只须要下载luyten即可,不用下载Procyon。Procyon最新版本0.5.30。
3、Android反编译gui工具Jadx
jadx是一款Android反编译gui工具,它支持apk、dex、jar、class、zip、aar等文件。jadx操作便捷,反编译后的代码可读性高,同时还拥有较健全的gui界面,去除混淆部份的代码,jadx早已十分接近源代码了。
Jadx最高版本v0.7.1linux反编译class文件,官方地址。
三个工具中JD-GUI打开jar文件反编译速率飞快、luyten次之、Jadx最慢(有时侯须要等好一会,喝杯奶茶先)。二者就会碰到反编译不下来的情况,建议配合使用。