jad 反编译的使用方法

2024-08-22 19:58
文章标签 使用 方法 反编译 jad

本文主要是介绍jad 反编译的使用方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        最近看到好多大神学习java源码,感觉好高大上有没有,都是class文件自己不会看有没有!!!

       下面给大家介绍如何反编译

        当然是用工具jad啦!

jad简单用法(以下假设jad.exe在D:\JDK\jad目录下)
一、基本用法  Usage: jad[option(s)]
 直接输入类文件名,且支持通配符,如下所示。
 D:\JDK\jad>jadabc.class
 D:\JDK\jad>jad *.class 结果是将abc.class反编译为abc.jad。将abc.jad改为abc.java即得源文件。
二、Option-o 不提示,覆盖源文件
三、 Option-s D:\JDK\jad>jad-s javaabc.class 反编译结果以.java为扩展名。
四、 Option-p 将反编译结果输出到屏幕
 D:\JDK\jad>jad-pabc.class 将反编译结果重定向到文件 D:\JDK\jad>jad-pabc.class>abc.java
五、 Option-d 指定反编译的输出文件目录 D:\JDK\jad>jad-o-dtest-sjava*.class
 命令行选择的列表
-a  -用JVM字节格式来注解输出
-af  -同  -a,但是注解的时候用全名称
-clear  -清除所有的前缀
-b  -输出多于的括号 (e.g., if(a) { b(); }, default: no)
-d   -指定输出文件的文件目录
-dead  -试图反编译代码的dead 部分(default: no)
-disass  -不用用字节码的方式反编译 (no JAVA source generated)
-f  -输出整个的名字,无论是类还是方法
-ff  -输出类的成员在方法之前 (default: after methods)
-i  -输出所有的变量的缺省的最初值
-l  -将strings分割成指定数目的块的字符 (default: no)
-lnc  -将输出文件用行号来注解 (default: no)
-nl  -分割strings用新行字符 newline character (default: no)
-nodos  -不要去检查class文件是否以dos方式写 (CR before NL, default: check)
-nocast  -不要生成辅助文件
-nocode  -不要生成方法的源代码
-noconv  -不要转换java的定义符 (default: do)
-noctor  -不允许空的构造器存在
-noinner  -关掉对内部类的支持 (default: turn on)
-nolvt  -忽略局部变量的表信息
-nonlb  -不要输出一个新行在打开一个括号之前 (default: do)
-o  - 无需确认直接覆盖输出 (default: no)
-p  -发送反编译代码到标准输出 STDOUT (e.g., for piping)

这篇关于jad 反编译的使用方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097245

相关文章

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

如何将Python彻底卸载的三种方法

《如何将Python彻底卸载的三种方法》通常我们在一些软件的使用上有碰壁,第一反应就是卸载重装,所以有小伙伴就问我Python怎么卸载才能彻底卸载干净,今天这篇文章,小编就来教大家如何彻底卸载Pyth... 目录软件卸载①方法:②方法:③方法:清理相关文件夹软件卸载①方法:首先,在安装python时,下