2020年支持java8的Java反编译工具汇总(推荐)

 更新时间:2020年06月29日 09:53:00   作者:匪六哥  
这篇文章主要介绍了2020年支持java8的Java反编译工具汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

     大多商业软件,会对程序进行加密、加壳等安全措施以防范软件被破解,从而使得反编译越来越难。反编译是一个对目标可执行程序进行逆向分析,从而得到源代码的过程。尤其是像Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。

      我们知道,在代码支撑方面,JDK 1.7引入了字符串Switch、泛型接口改进等新功能,1.8增加了lambda表达式、方法传递、多重注解等新特性,这使得反编译工具的编写难度加大。今天我们盘点一下目前仍然可用的、相对功能很强大的Java反编译工具(Eclipse插件不做评价),比较老的反编译工具很难支持Java8及其以上版本。

 1、Java 反编译器 JD-GUI

JD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows、Linux和苹果Mac Os三个平台。而且提供了Eclipse平台下的插件JD-Eclipse、IntelliJ的插件JD-IntelliJ。JD-GUI不需要安装,直接点击运行,可以反编译jar,class文件。

最新版本1.4.0,官方网站:http://jd.benow.ca/。或者本地下载地址:https://www.jb51.net/softs/66904.html

2、Java 反编译器 procyon-decompiler及其window下独立UI工具luyten

     Procyon-Decompiler支持JDK1.8类的反编译,在很多方面做得非常不错,如反编译匿名类、内部类、Java8 Lambda等等。Procyon-Decompiler支持JDK1.8类的反编译,在很多方面做得非常不错:字符串的Switch、枚举声明方面、注解方面、匿名类、内部类、Java8新接口规范、Java8 Lambda表达式、Java8 方法传递等。

      luyten是Procyon的GUI,是一款操作简单、功能实用的java反编译工具,软件支持*.JAR、*.zip、*.class等类型文件的反编译操作,还原度非常高,支持更多功能设置,如显式导入、类型、合成组件等等,用户可根据不同的需求选择合适的显示项目,结果更明了。

     luyten的最新版本0.53,官方网址:https://github.com/deathmarine/Luyten,只需要下载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.1,官方地址https://github.com/skylot/jadx/。或者本地下载地址:https://www.jb51.net/softs/544428.html

   三个工具中JD-GUI打开jar文件反编译速度飞快、luyten次之、Jadx最慢(有时候需要等好一会,喝杯咖啡先)。三者都会遇到反编译不出来的情况,建议配合使用。

 到此这篇关于2020年支持java8的Java反编译工具汇总(推荐)的文章就介绍到这了,更多相关支持java8的Java反编译工具内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • idea解决Git分支合并冲突问题

    idea解决Git分支合并冲突问题

    这篇文章主要介绍了idea解决Git分支合并冲突问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java面向对象之内部类案例讲解

    Java面向对象之内部类案例讲解

    这篇文章主要介绍了Java面向对象之内部类案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • MySQL中drop、truncate和delete的区别小结

    MySQL中drop、truncate和delete的区别小结

    在MySQL数据库管理中,常常需要执行删除数据的操作,本文主要介绍了MySQL中drop、truncate和delete的区别小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Spring MVC文件请求处理MultipartResolver详解

    Spring MVC文件请求处理MultipartResolver详解

    这篇文章主要介绍了Spring MVC文件请求处理详解:MultipartResolver,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-11-11
  • java 如何往已经存在的excel表格里面追加数据的方法

    java 如何往已经存在的excel表格里面追加数据的方法

    这篇文章主要介绍了java 如何往已经存在的excel表格里面追加数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Java HtmlParse提取标签中的值操作

    Java HtmlParse提取标签中的值操作

    这篇文章主要介绍了Java HtmlParse提取标签中的值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 使用@Value注入map、List,yaml格式方式

    使用@Value注入map、List,yaml格式方式

    这篇文章主要介绍了使用@Value注入map、List,yaml格式方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 详解Java如何优雅的调用dubbo同时不使用其它jar包

    详解Java如何优雅的调用dubbo同时不使用其它jar包

    这篇文章主要介绍了如何在不使用他人jar包的情况下优雅的进行dubbo调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02
  • 聊聊Spring AOP @Before @Around @After等advice的执行顺序

    聊聊Spring AOP @Before @Around @After等advice的执行顺序

    这篇文章主要介绍了聊聊Spring AOP @Before @Around @After等advice的执行顺序,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 详解MyBatis ResultSetHandler 结果集的解析过程

    详解MyBatis ResultSetHandler 结果集的解析过程

    这篇文章主要为大家介绍了MyBatis ResultSetHandler 结果集的解析过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02

最新评论