JD-GUI,java反编译工具及原理: JavaDecompiler一个Java反编译器

简介: Java Decompiler (JD-GUI) 是一款由 Pavel Kouznetsov 开发的图形化 Java 反编译工具,支持 Windows、Linux 和 Mac Os。它能将 `.class` 文件反编译为 Java 源代码,支持多文件标签浏览、高亮显示,并兼容 Java 5 及以上版本。JD-GUI 支持对整个 Jar 文件进行反编译,可跳转源码,适用于多种 JDK 和编译器。其原理基于将字节码转换为抽象语法树 (AST),再通过反编译生成代码。尽管程序可能带来安全风险,但可通过代码混淆降低可读性。最新版修复了多项识别错误并优化了内存管理。

软件简介

Java Decompiler ( JD-GUI )这款反编译器叫 "Java Decompiler", 由 Pavel Kouznetsov 开发,目前最新版本为 1.1.0. 它由 groovy 开发,并且官方可以下载 windows、linux 和苹果 Mac Os 三个平台的可执行程序。

1.png

官网:github.io

如果下载慢,我整到这里了,点开链接下载:java-decompliler所有平台版本

安装

1.下载java反编译工具软件,进行安装

2.双击打开,打开后的界面如下图,一目了然吧?界面很简洁,虽然是英文,但是难不倒大家的

2.png

3.通过file-》open file打开你想反编译的class文件

3.png

4.打开,马上看到了你熟悉的java代码了。简单吧?

4.png

ava反编译工具(java decompiler )实现了eclipse的高亮着色功能,多文件标签浏览,Java反编译工具还可以很方便的反编译Java5以及以上版本生成的.class文件,软件界面友好,操作起来非常简单,java反编译工具是一款非常实用的工具。

5.png

其有下面几个功能:

  1. 支持对整个 Jar 文件进行反编译,并本源代码可直接点击进行相关代码的跳转
  2. 支持众多 Java 编译器的反编译 (支持泛型, Annotation 和 enum 枚举类型)
  • jdk1.1.8

  • jdk1.3.1

  • jdk1.4.2

  • jdk1.5.0

  • jdk1.6.0

  • jikes-1.22

  • harmony-jdk-r533500

  • Eclipse Java Compiler v_677_R32x, 3.2.1 release

  • jrockit90_150_06

java反编译工具常见问答

一、什么是JD-GUI?

1JD-GUI是一个独立的图形实用程序,显示“.class”文件的Java源代码。您可以使用JD-GUI浏览重建的源代码,以便即时访问方法和字段。

二、程序可以反编译岂不是很不安全?

1、可以采用代码混淆等技术来加大反编译的难度和降低反编译代码的可读性,但是完全避免反编译是不可能的。

三、java反编译工具的原理是什么?

由于Java、.net这样的基于虚拟机技术的语言都是采用了ByteCode的二进制结构,因此很容易将ByteCode转化为“抽象语法树”(简称AST,《编译原理》这门课中的概念),然后采用反编译器就可以将AST转换为代码了。

java反编译工具更新日志

1、修正了“.class”表达式的识别错误。

2、修正错误识别“开关枚举”指令。

3、用已知的数字常量(例如Long.MAX_VALUE)替换数值。

4、删除了不必要的“java.lang”前缀。

5、修正了在最后位置上包含三元运算符的try-cacht语句的识别错误。

6、添加了返回的通用变量的转换说明。

7、隐藏匿名类的合成字段。

8、在内部,改进的JD-Core内存管理(复杂的智能指针C ++ 11由基本但非常高效的内存池替代)

目录
相关文章
|
3月前
|
监控 Java Unix
6个Java 工具,轻松分析定位 JVM 问题 !
本文介绍了如何使用 JDK 自带工具查看和分析 JVM 的运行情况。通过编写一段测试代码(启动 10 个死循环线程,分配大量内存),结合常用工具如 `jps`、`jinfo`、`jstat`、`jstack`、`jvisualvm` 和 `jcmd` 等,详细展示了 JVM 参数配置、内存使用、线程状态及 GC 情况的监控方法。同时指出了一些常见问题,例如参数设置错误导致的内存异常,并通过实例说明了如何排查和解决。最后附上了官方文档链接,方便进一步学习。
264 4
|
23天前
|
Java 数据安全/隐私保护 计算机视觉
银行转账虚拟生成器app,银行卡转账截图制作软件,java实现截图生成工具【仅供装逼娱乐用途】
本内容提供Java生成自定义图片的示例代码,涵盖基础图像创建、文本添加及保存功能,适合学习2D图形编程。包括教学示例图片生成、文本图层处理和数字水印技术实现方案。
|
22天前
|
Java 数据安全/隐私保护
银行转账虚拟生成器app,银行卡转账截图制作软件,java实现截图生成工具【仅供装逼娱乐用途】
本项目提供了一套基于Java的图片处理教学方案,包含自定义图片生成、图像水印添加及合法电子凭证生成技术示例。
|
8月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
176 9
|
2月前
|
机器学习/深度学习 消息中间件 存储
【高薪程序员必看】万字长文拆解Java并发编程!(9-2):并发工具-线程池
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的强力并发工具-线程池,废话不多说让我们直接开始。
102 0
|
7月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
1466 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
9月前
|
监控 Java 测试技术
Java开发现在比较缺少什么工具?
【10月更文挑战第15天】Java开发现在比较缺少什么工具?
88 1
|
8月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
226 83
|
7月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
233 7
Spring Boot 入门:简化 Java Web 开发的强大工具
|
8月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
141 26

热门文章

最新文章