JD-GUI和JAD对War包和Jar包进行反编译教学

news2024/11/16 15:42:27

其他系列文章导航

Java基础合集

设计模式合集

多线程合集

分布式合集

ES合集


文章目录

其他系列文章导航

文章目录

前言

一、JD-GUI下载及对Jar包的反编译

 1.1选择自己的操作系统进行下载​编辑

1.2下载完后进行解压双击exe文件打开

1.3点击File菜单栏的Open File打开需要的jar包

1.4然后用快捷键ctrl+alt+s将反编译的java文件保存

二、JD-GUI对War包的反编译

三、JAD下载及对Jar包和War包的反编译

 3.1选择自己的操作系统进行下载

3.2下载完后进行解压,将解压后的exe文件放到要反编译的文件夹同层

3.3然后在这个文件夹中启动cmd

3.4输入一行命令一键搞定 

四、总结 


前言

JD-GUI和JAD是两个用于反编译Java字节码的工具。它们通常在以下情况下使用:

  1. 代码调试:当你需要调试Java代码时,可以使用JD-GUI将Java类反编译为可读的源代码,以便进行调试和分析。
  2. 代码分析:如果你需要对Java类进行深入的分析,例如了解代码结构、方法调用关系等,可以使用JD-GUI来反编译Java类,并查看反编译后的源代码。
  3. 代码重构:如果你需要修改现有的Java类,可以使用JD-GUI将Java类反编译为可读的源代码,然后进行修改。注意,反编译后的源代码可能不完全与原始源代码相同,因此在进行修改时需要谨慎。
  4. 辅助学习:如果你是一名Java初学者,可以通过JD-GUI和JAD反编译现有的Java类,了解Java类的结构和实现方式,从而加深对Java语言的理解。

一、JD-GUI下载及对Jar包的反编译

下载链接:Java Decompiler

 1.1选择自己的操作系统进行下载

1.2下载完后进行解压双击exe文件打开

1.3点击File菜单栏的Open File打开需要的jar包

1.4然后用快捷键ctrl+alt+s将反编译的java文件保存


二、JD-GUI对War包的反编译

反编译步骤和反编译Jar包一样,唯一要注意的就是:

将自己的war后缀改为.zip,然后解压出来,在WEB-INF多出了一个classes的文件,进去后可以看到是我们java文件的编译文件,都是.class文件。

打开jd-gui工具,将.class文件拖拽进去。我们可以看到自动的将我们java项目原结构分离出来。我们只需要保存,编译后的java代码。然后拷入我们的项目就可以了。

JD-GUI对要同时反编译多个class太不友好了!!!!!!!

如果对于单个文件的情况,可以使用JDGUI来打开看一下,多个文件也可以,甚至一个jar包或者war包都可以,但只能在GUI里打开看看,对于想反编译成一个项目,直接使用源代码的朋友来讲,真的很不方便。

所以接下来我要介绍JAD了!!!!极力推荐!!!!


三、JAD下载及对Jar包和War包的反编译

下载链接:JAD Java Decompiler Download Mirror (varaneckas.com)

 3.1选择自己的操作系统进行下载

3.2下载完后进行解压,将解压后的exe文件放到要反编译的文件夹同层

3.3然后在这个文件夹中启动cmd

3.4输入一行命令一键搞定 

jad -8 -o -r -sjava -d src classes/**/*.class
  • -8 指的是将Unicode字符转换为ANSI字符串,如果输出字符串是中文的话一定要加上这个参数才能正确显示。
  • -o - 覆盖输出文件而不进行确认
  • -r - 恢复软件包目录结构
  • -s - 输出文件扩展名(默认:.jad)这里是 .java
  • -d - 输出文件的目录


四、总结

单个文件或少量文件推荐JD-GUI,它拥有可视化界面,更好操作。

多个文件或整个项目建议使用JAD,比较高效,也支持中文反编译。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1270893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习:DBSCAN算法(效果比K-means好)

基本概念 核心对象:以点为圆心半径为r的圆,如果圈里面的样本点大于给定的阈值(minPts),那么这个点就叫做核心点 直接密度可达:点p在q为圆心的圆内 密度可达: p1与p2直接密度可达,p2与p3直接密度可达&…

系列二十五、Spring设计模式之适配器模式

一、适配器模式 1.1、概述 适配器模式(Adapter Pattern)用于兼容不相关的接口之间,类似于一个桥梁,它结合了两个独立接口的功能,这种类型的设计属于结构型模式,为了方便大家伙的理解,我举个例子…

中台战略思想与架构总结

中台战略思想与架构总结 在2015年年中,马云带领阿里高管,拜访了游戏公司Supercell,以《部落战争》《海岛奇兵》《卡通农场》等游戏知名。 Supercell是一家典型的以小团队模式进行游戏开发的公司,一般来说两个员工,或…

佳易王羽毛球馆计时计费软件操作教程,软件可以自动计算费用,支持会员管理

一、前言(编程应用实例系列): 佳易王羽毛球馆计时计费软件操作教程,软件可以自动计算费用,支持会员管理 软件有试用版,可以下载试用,了解软件操作和软件功能。 软件试用版下载可以点击最下方…

手写VUE后台管理系统5 - 整合状态管理组件pinia

整合状态管理组件 安装整合创建实例挂载使用 pinia 是一个拥有组合式 API 的 Vue 状态管理库。 pinia 官方文档:https://pinia.vuejs.org/zh/introduction.html 安装 yarn add pinia整合 所有与状态相关的文件都放置于项目 src/store 目录下,方便管理 在…

Synchronized底层机制:偏向锁、轻量级锁与重量级锁及其锁升级过程

前言: 在Java并发编程中,synchronized关键字是用于实现线程同步的重要工具。在JVM中,synchronized的底层实现涉及到了偏向锁、轻量级锁和重量级锁这三种锁状态,以及锁升级过程。在之前的文章中介绍到过,这篇文章详细对…

【攻防世界-misc】[简单] 凯撒大帝在培根里藏了什么

1.下载文件,打开后是这样子的 2.根据题目提示说是有凯撒密码和培根密码,因为文件内容为AB形式,不符合凯撒条件,所以先用培根解,将文件内容复制,CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具…

使用Golang构建高性能网络爬虫

目录 一、Golang的特点 二、构建网络爬虫的步骤 三、关键技术和注意事项 使用协程进行并发处理 使用通道进行协程间的通信 合理控制并发数和处理速度 遵守网站使用协议和法律法规 防止被网站封禁或限制访问 优化网页解析和数据处理 异常处理和错误处理 日志记录和监控…

chrome vue devTools安装

安装好后如下图所示: 一:下载vue devTools 下载链接https://download.csdn.net/download/weixin_44659458/13192207?spm1001.2101.3001.6661.1&utm_mediumdistribute.pc_relevant_t0.none-task-download-2%7Edefault%7ECTRLIST%7EPaid-1-13192207…

Java实现飞翔的鸟小游戏

Java实现飞翔的鸟小游戏 1.准备工作 创建一个新的Java项目命名为“飞翔的鸟”,并在src中创建一个包命名为“com.qiku.bird",在这个包内分别创建4个类命名为**“Bird”、“BirdGame”、“Column”、“Ground”,并向需要的图片**素材导入…

运行启动vue项目报报错node: --openssl-legacy-provider is not allowed in NODE_OPTIONS解决

报错的问题就是package.json中的Scripts下的dev 解决方法就是要不升级你的应用代码,支持 新版本的node.js 要不就是删除SET NODE_OPTIONS--openssl-legacy-provider &&代码,如下代码即可正常运行起来

还在愁没项目?来瞧瞧这些另类赚钱方式

客套话不多说,直接上案例,这些都是正儿八经的真实案例,相信大家通过这些人的案例自然能摸索整理出一套属于自己的项目!摸索不出,也多多少少能受一些灵感上的启发。 小A是长期混B站的,大家称他为“B站搬运工…

echarts图表显示不全

图表显示是显示了,但是没有展示全部,一看控制台div的高度只有1px了,手动修改高度也只是拉伸图表,并没有按规定的尺寸展示 随之开始思考为什么呢 ? ? ? 因为 Echarts 的依赖是惰性的,需要手动设置resize&#xff0…

【Openstack Train安装】十三、创建实例

在先前的教程中,介绍了安装openstack及其相关组件的具体过程,本文介绍如何创建实例并完成访问。 在按照本教程操作之前,请确保完成以下配置: 【Openstack Train安装】一、虚拟机创建 【Openstack Train安装】二、NTP安装 【Op…

ubuntu0.22.04.1安装mysql8.0及root密码注意

先看一下你的安装包是什么版本 apt list |grep mysql基本都是默认的8.0版本,然后安装: apt-get install mysql-server-8.0安装以后 ,mysql默认启动; 一般root 是没有密码的,在本地直接回车登录 我们看一下密码插件 …

Java系列-new Object的过程

从《深入理解Java虚拟机》里面的第七章看到了一些,先简单记录一下,好多不懂的。 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。其中验证…

37.从0到上线三天搭建个人网站(第一天)

点赞收藏加关注,你也能住大别墅! 挑战三天搭建个人网站 从0到上线 一、项目的主要功能 1.作为自己在网上的一个工作室。 2.发帖 3.展示个人项目连接 4.介绍自己(没准儿还能接点活儿) 二、UI风格参考 三、技术选型 1.前端&a…

宋仕强论道之华强北自组织和激励模式(十四)

宋仕强论道之华强北自组织和激励模式(十四): 为什么一个小小深圳市华强北我宋仕强就讲这么久呢,听说玄奘大和尚刚出道时在洛阳的白马寺讲经,一个“悟”字就讲了三个月。一个事物有他的复杂性和多样性,从自然科学和社会…

STM32CubeMX HAL F405 TIM1输出多路不同频率及占空比的方波(PWM)(输出比较模式)

TIM1_CH1 TIM1_CH1N TIM1_CH2 TIM1_CH2N TIM1_CH3 TIM1_CH3N TIM1_CH4 TIM1的通道1、2、3输出同频率(20KHz)的PWM波形(占空比50%) TIM1的通道1输出100Hz的PWM波形(占空比50%) #include "tim.h"/* USER CODE BEGIN 0 */ uint16_t f1 100;…

科聪停车移动机器人整体解决方案!

停车机器人是用于在停车场或车库等场所中进行车辆的自动停放和取车操作。随着智能交通和智能城市的发展,停车机器人在解决停车难、提高停车效率和减少停车空间浪费等方面具有广阔的应用前景。 科聪停车机器人解决方案: 本方案中核心部分采用的是科聪通用…