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反编译工具内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 分享7款开源Java反编译工具

    今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其是像.NET.Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码.当然,也有一些商业软件,对其程序进行了混淆加密,这样我们就很难用工具反编译了. 1.Java反编译插件 -- Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到e

  • java反编译工具Bytecode-Viewer分享

    在java的开发学习中,可能需要想了解class文件对应的代码内容是什么,如果我们使用IDE工具,可以通过IDE工具的各种反编译插件去进行反编译,但是java的IDE工具还是比较笨重的,启动耗时并且占用内存,这时我们就需要一些简单的反编译小工具去处理. java反编译工具有很多,这里介绍的是Bytecode-Viewer,官网地址bytecodeviewer.com 反编译 通过view菜单可以选择显示面板以及对应的反编译引擎. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支

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

    大多商业软件,会对程序进行加密.加壳等安全措施以防范软件被破解,从而使得反编译越来越难.反编译是一个对目标可执行程序进行逆向分析,从而得到源代码的过程.尤其是像Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码. 我们知道,在代码支撑方面,JDK 1.7引入了字符串Switch.泛型接口改进等新功能,1.8增加了lambda表达式.方法传递.多重注解等新特性,这使得反编译工具的编写难度加大.今天我们盘点一下目前仍然可用的.相对功能很强大的Java反编译工具(Eclipse插件不做

  • 最好的Java 反编译工具的使用对比分析

    前言 Java 反编译,一听可能觉得高深莫测,其实反编译并不是什么特别高级的操作,Java 对于 Class 字节码文件的生成有着严格的要求,如果你非常熟悉 Java 虚拟机规范,了解 Class 字节码文件中一些字节的作用,那么理解反编译的原理并不是什么问题. 甚至像下面这样的 Class 文件你都能看懂一二. 一般在逆向研究和代码分析中,反编译用到的比较多.不过在日常开发中,有时候只是简单的看一下所用依赖类的反编译,也是十分重要的. 恰好最近工作中也需要用到 Java 反编译,所以这篇文章介

  • Eclipse中安装反编译工具Fernflower的方法(Enhanced Class Decompiler)

    IntelliJ IDEA一个吸引人的地方在于,他有比较好的反编译工具,这让Eclipse用户牙痒痒.但不要紧,本文介绍如何在Eclipse IDE中使用IntelliJ IDEA的反编译工具Fernflower. 为啥需要反编译 很多jar不提供源码,那么打开class是这个鸟样. 不具备人类可读性.因此需要反编译. 什么是Fernflower 那么我是怎么知道Fernflower的呢?你随便用IntelliJ IDEA打开一个jar中的class文件,可以看到下面的信息,这就是IEDA中的反

  • Java Hutool 包工具类推荐 ExcelUtil详解

    目录 Java Hutool 包工具类推荐 ExcelUtil 包引入 一般简单表头Excel封装工具类 复杂表头或表格内合并单元格写入 总结 Java Hutool 包工具类推荐 ExcelUtil 包引入 hutool包版本号可根据实际情况更换 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.4.M

  • 详解JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)

    目录 一.前言 二.编写java文件 三.科补代码理解 四.javap命令 五.执行javap命令 六.下载Jad包 1. 网址下载 2. 解压到指定目录 3. 配置环境变量 4. 常用命令查看 5.实践命令 七.总结 一.前言 我们在日常学习中,对一个java代码有问题,不知道jvm内部怎么进行解析的时候:有个伟大壮举就是反编译,这样就可以看到jvm内部怎么进行对这个java文件解析的!我们可以使用JDK自带的javap命令来进行反编译,反编译出来的如果看不太明白,可以使用Jad工具来配合使用

  • Java代码编译和反编译的那些事儿

    编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Programming Language)分为低级语言(Low-level Language)和高级语言(High-level Language). 机器语言(Machine Language)和汇编语言(Assembly Language)属于低级语言,直接用计算机指令编写程序. 而C.C++.Java.Python等属于高级语言,用语句(Statement)编写程序,语句是计算

  • java防反编译最简单的技巧分享

    前言 本文主要跟大家介绍了关于java防反编译的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 示例代码: 源码使用try-catch代码包装下,如下: public class CompileForbid { public static void main(String[] args) { try { System.out.println("-------"); //防止反编译的处理 if (654789 == new Random().nextInt()

  • java如何反编译jar包并修改class文件重新打包

    目录 反编译jar包并修改class文件重新打包 解决思路 jar包反编译后修改源码再编译 1.场景 2.详细步骤 反编译jar包并修改class文件重新打包 这两天碰到一个需求:需要修改一个jar包中的逻辑代码,并且重新打包 本来是很简单的问题,但是因为这个jar包不是可执行的jar包(没有main方法入口),jar反编译之后又是不能通过idea重新打包,因为jar是混乱的 所以费了点时间,在此记录下 解决思路 反编译jar包 首先用一些反编译工具类似 jad-gui 之类的 ,将项目反编译成

随机推荐