大多商业软件,会对程序进行加密、加壳等安全措施以防范软件被破解,从而使得反编译越来越难。反编译是一个对目标可执行程序进行逆向分析,从而得到源代码的过程。尤其是像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/。

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/。

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

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

  1. java反编译工具_Java开发必会的反编译知识(附支持对Lambda进行反编译的工具)...

    我之前推送过Java代码的编译与反编译,其中简单的介绍了Java编译与反编译相关的知识,最近给GitChat写<深入分析Java语法糖>的时候,又用到了很多反编译相关的知识,遂发现哪篇文章 ...

  2. java反编译工具_ReverseTool逆向工具集合

    反向工具 逆向工具集合 真棒骇客 Java和Jar(Android) jd-gui jar包浏览工具,对应的IDE插件,JD-Eclipse / JD-IntelliJ Luyten一个用于Procy ...

  3. 开源Java反编译工具

    Java 反编译器 1. JD-GUI JD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows.Linux和苹果Mac Os三个平台 ...

  4. java反编译工具_JDA Java反编译工具的下载和使用手册

    JDA(javadecompile analysis)是一款以dex为核心的java反编译工具,同时支持apk.dex.jar文件的反编译,支持动态重命名.该软件主要是用来反编译分析代码而不是反编译出 ...

  5. [转]一款可以反编译jar包的java反编译工具-JD-GUI(绿色软件)

    [转]一款可以反编译jar包的java反编译工具-JD-GUI(绿色软件) 文章分类:Java编程 该软件无需安装,界面清爽. 转自:http://www.devdoc.org/index.php/a ...

  6. 7 款开源 Java 反编译工具

    7 款开源 Java 反编译工具 今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其 ...

  7. JAVA反编译工具精选

    ===================================================================== JAVA 语言是 1995 年 5 月由 SUN 公司发布的 ...

  8. Java 反编译工具的使用与对比分析

    前言 Java 反编译,一听可能觉得高深莫测,其实反编译并不是什么特别高级的操作,Java 对于 Class 字节码文件的生成有着严格的要求,如果你非常熟悉 Java 虚拟机规范,了解 Class 字 ...

  9. 介绍一款特别好用的java反编译工具jd-gui

    目录 写在前面 开始 写在前面 之前用过另一款java反编译工具jad 但是这个工具有个问题就是对于一些java8的新特性,比如lambda表达式是解析不出来的,更不用说java9和java17了.关 ...

  10. 介绍一款好用的java反编译工具 - jd-gui

    当java应用程序在运行过程中遇到问题时,一般会抛出异常并打印堆栈信息,这些堆栈信息链中常常可以看到一些二方包和三方包.在排查问题时,很多时候我们需要查看这些二方包和三方包的源码.二方包是公司内部其它 ...

最新文章

  1. 【C++】Google C++编码规范(四):其他C++
  2. python下载安装教程图解-一招解决:各种版本的Python下载安装教程
  3. vim的配置安装和Python安装细节记录20190109
  4. python-03 爬虫相关
  5. 一训练就显存爆炸?Facebook 推出 8 比特优化器,两行代码拯救你的显存!
  6. cvc降噪和主动降噪_小米降噪项圈蓝牙耳机来了:Hybrid主动降噪技术
  7. 【机器人】“市场很冷,从业者很拼” | 众多国内机器人厂商热议当前市场状态|人工智能...
  8. 二分法03:x 的平方根
  9. C#基础概念面试题(更新中)
  10. 全球高精度5米 12.5米 30米地形(DEM)高程数据(tif格式)下载
  11. kettle的下载|运行及简单kettle数据抽取(MAC kettle|windows Kettle)
  12. 【安全资讯】阿里巴巴遭遇网络爬虫,泄露11.8亿条淘宝个人信息
  13. zbox mysql_部署禅道数据库报错
  14. zabbix图形中文字显示方框或乱码问题
  15. vivoX30是android5的吗,深度剖析揭秘opporeno5质量和vivox30区别是?选哪个更好?独家揭秘报道...
  16. 正则表达式判断是不是手机号
  17. 深入学习Linux摄像头(一)v4l2应用编程
  18. 【wiki维基百科中文数据集】抽取wiki数据集——实操
  19. Seagull island
  20. 虚拟主机到底哪家比较好呢?

热门文章

  1. mybatis关联查询resultmap的使用详解resultmap
  2. sublime text 安装及使用
  3. 可以运行的Oracle Advanced Queue的例子
  4. 1×1的卷积核在卷积层的作用----网络中的网络
  5. arduino液位传感器_「雕爷学编程」Arduino动手做(24)——水位传感器模块
  6. 一图理解ceil和floor的区别
  7. qt5.15.1及以上版本进行编译(windows64位)
  8. sqlite数据库文件的下载编译和VS中数据库创建demo
  9. 东西湖职业技术学校计算机专业怎么样,武汉东西湖职业技术学校怎么样
  10. 源码安装mysql初始化报错_源码安装MySQL5.6.39后,修改配置文件启动报错