反编译工具jad下载安装及使用(无需集成环境一键使用)
Posted ¿Quién soy yo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反编译工具jad下载安装及使用(无需集成环境一键使用)相关的知识,希望对你有一定的参考价值。
一、下载
1.windows下载地址:http://www.kpdus.com/jad.html
2.下载完成将压缩包解压至方便自己查找的位置
二、常见用法
1.进入DOS界面(按键win+r,输入cmd)
2.进入jad.exe所在的路径
2.1在dos界面结合各命令进入jad.exe路径
2.1.1直接输入d:,切换至d盘
2.1.2输入cd gongju,切换至工具目录
2.1.3输入dir显示所有目录
2.2直接在本地找到jad.exe,在当前路径栏输入cmd回车进入dos界面
3.拿到需要进行反编译的Java文件,保存在方便自己找到的路径
4.在保存Java文件的路径输cmd进入dos界面,输入javac Cache.java
5.界面如果出现下图的错误,把文件编码修改为UTF-8编码或者ANSI编码(修改文件编码可在Notepad++或记事本修改,具体修改流程此处不做说明),然后输入命令javac -encoding UTF-8 Cache.java进行编译(编译之后输入java Cache执行,如只需编译不用执行,请自行略过);或者javac -encoding GBK Cache.java进行编译(编译之后输入java Cache执行,如只需编译不用执行,请自行略过)
6.会在Java文件所在路径下生成一个class文件
三、详细用法
D:\\gongju\\jad\\jad158g.win>jad -h
Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov (jad@kpdus.com).
Usage: jad [option(s)] <filename(s)>
Options: -a - generate JVM instructions as comments (annotate)
-af - output fully qualified names when annotating
-b - generate redundant braces (braces)
-clear - clear all prefixes, including the default ones
-d <dir> - directory for output files
-dead - try to decompile dead parts of code (if there are any)
-dis - disassembler only (disassembler)
-f - generate fully qualified names (fullnames)
-ff - output fields before methods (fieldsfirst)
-i - print default initializers for fields (definits)
-l<num> - split strings into pieces of max <num> chars (splitstr)
-lnc - output original line numbers as comments (lnc)
-lradix<num>- display long integers using the specified radix
-nl - split strings on newline characters (splitstr)
-noconv - don't convert Java identifiers into valid ones (noconv)
-nocast - don't generate auxiliary casts
-noclass - don't convert .class operators
-nocode - don't generate the source code for methods
-noctor - suppress the empty constructors
-nodos - turn off check for class files written in DOS mode
-nofd - don't disambiguate fields with the same names (nofldis)
-noinner - turn off the support of inner classes
-nolvt - ignore Local Variable Table entries (nolvt)
-nonlb - don't insert a newline before opening brace (nonlb)
-o - overwrite output files without confirmation
-p - send all output to STDOUT (for piping)
-pa <pfx>- prefix for all packages in generated source files
-pc <pfx>- prefix for classes with numerical names (default: _cls)
-pe <pfx>- prefix for unused exception names (default: _ex)
-pf <pfx>- prefix for fields with numerical names (default: _fld)
-pi<num> - pack imports into one line using .* (packimports)
-pl <pfx>- prefix for locals with numerical names (default: _lcl)
-pm <pfx>- prefix for methods with numerical names (default: _mth)
-pp <pfx>- prefix for method parms with numerical names (default:_prm)
-pv<num> - pack fields with the same types into one line (packfields)
-r - restore package directory structure
-radix<num>- display integers using the specified radix (8, 10, or 16)
-s <ext> - output file extension (default: .jad)
-safe - generate additional casts to disambiguate methods/fields
-space - output space between keyword (if, while, etc) and expression
-stat - show the total number of processed classes/methods/fields
-t<num> - use <num> spaces for indentation (default: 4)
-t - use tabs instead of spaces for indentation
-v - show method names while decompiling
-8 - convert Unicode strings into ANSI strings (ansi)
-& - redirect STDERR to STDOUT
四、class反编译
1、打开win10的cmd命令行(按键win+r)
2、进入到jad.exe所在的路径
3、输入jad example1.class,之后就会在 example1.class所在路径生成一个example1.jad文件
(可以使用记事本或者Notepad++打开该文件查看),直接将example1.jad改为example1.Java,文件内容不变。
4、输入jad -sJava example1.class,反编译结果以.Java为扩展名。
其它:
1、jad -p example1.class(-p将反编译结果输出到屏幕)
2、jad -dJadtemp example1.class(-d后接文件名,指定文件的输出目录)
五、ANSI及UTF-8编码解释
ANSI 编码:不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、Big5、Shift_JIS 等各自的编码标准。这些使用 1 至 4 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。(来自百度百科)
UTF-8编码:UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。
Unicode(统一码):是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
Unicode只是一组字符设定或者说是从数字和字符之间的逻辑映射的概念编码,但是它并没有指定代码点如何在计算机上存储。UCS4、UTF-8、UTF-16(UTF后的数字代表编码的最小单位,如UTF-8表示最小单位1字节(=8 bits),所以它可以使用1、2、3字节等进行编码,UTF-16表示最小单位2字节,所以它可以使用2、4字节进行编码)都是Unicode的编码方案。其中UTF-8因可以兼容ASCII而被广泛使用。(来自百度百科)
以上是关于反编译工具jad下载安装及使用(无需集成环境一键使用)的主要内容,如果未能解决你的问题,请参考以下文章