导航:首页 > 源码编译 > class文件怎么反编译查看

class文件怎么反编译查看

发布时间:2022-05-09 12:03:28

‘壹’ 如何在MyEclipse中反编译class文件

1.下载MyEclipse反编译Class文件的工具

2.工具的安装
下载后上面的工具之后,解压出来,我们可以看到有两个文件:jad.exe、net.sf.jadclipse_3.3.0.jar 。
第一步:我们将jad.exe文件放到JDK的bin目录下,具体的可以查看下面的图片:

第二步:将 net.sf.jadclipse_3.3.0.jar 拷贝到 MyEclipse安装目录下的plugins目录下面(接下来的步骤我会以我的计算机路径为例子说明)路径在:D:\Users\Administrator\AppData\Local\Genuitec\Common\plugins.具体文件位置见下图:

第三步:在D:\Users\Administrator\AppData\Local\Genuitec\MyEclipse-8.6\dropins创建一个eclipse文件夹.

第四步:在创建好的eclipse文件夹下,分别创建featues、plugins两个文件夹.

第六步:将net.sf.jadclipse_3.3.0.jar 文件分别拷贝到创建好的featues、plugins两个文件夹里面.

第七步:重新启动MyEclipse,在Windows——>Perference——>java下面应该会多出一个JadClipse目录. 如果没有出现的话,多试几次就OK了,我当时也是这样.

第八步:点击JadClipse,在右边的窗口中配置JadClipse. 设置path to decompiler为jad.exe的全路径,如:C:\jdk\bin\jad.exe,在Directory for temporary files中指定l临时文件路径,如 :D:\Users\Administrator\AppData\Local\Genuitec\MyEclipse-8.6\result ,其中result是新建一个文件夹. 同时需要选中 User Eclipse code formatter ,这样编译出来的Java 代码会和Class文件的格式一样.

为了避免编译后的中文乱码问题,我们需要配置Misc,选中如下单选框.

第九步:安装完成之后,双击Class文件,MyEclipse就自动反编译了.如果没有出现想要的结果,需要检查一下“*.class”默认关联的编辑器为“JadClipse Class File Viewer“ ,具体的操作还是看图吧:

关联之后,就可以自动的反编译啦!

‘贰’ 怎么把class文件反编译成java文件

一、基本用法
Usage:jad [option(s)]
直接输入类文件名,且支持通配符,如下所示。
c:java>jad example1.class
c:java>jad *.class
结果是将example1.class反编译为example1.jad。将example1.jad改为example1.java即得源文件。

二、Option -o
不提示,覆盖源文件

三、Option -s
c:java>jad -sjava example1.class
反编译结果以.java为扩展名。

四、Option -p
将反编译结果输出到屏幕
c:java>jad -p example1.class
将反编译结果重定向到文件
c:java>jad -p example1.class>example1.java

五、Option -d
指定反编译的输出文件目录
c:java>jad -o -dtest -sjava *.class

六、jad:反编译工具下载

可以将class文件反编译成java文件

假设将jad.exe安装在f:/java/jad目录下

把要反编译的文件*.class复制到此目录下,接着接以下步骤,

命令行窗口环境中进入jad目录,

然后运行:jad -s java *.class (附,*.class指要反编译的文件名)

如果*.class文件和jad程序不在同一个目录,就要用到path环境变量,

将jad 所在目录加到path路径中即可:set path=%path%;f:/java/jad

若要了解jad更为详细的使用帮助信息,直接运行jad.exe查看

‘叁’ class文件怎么反编译java文件

首先得下好DJ java discompiler.

打开下载好的DJ_java_discompiler

选择file,之后点击open。之后在出现界面选择一个test.class文件。
点击打开之后,出现反编译test.java后的界面,这个是test.java的文件。

如果以后想看.class文件的源码,可以用这种方式查看。

‘肆’ java 只有class文件怎么反编译

一般的class用反编译能够看到其源代码,而且其反编译的源代码甚至可能好于本身源代码(尤其是对于逻辑处理和字符串处理)
然而涉及到exception等东西的时候可能会有问题,但是你把它放到ide里面修改一下就可以了,生成的class文件也是可行的,但是关键的一点,编译环境最好与之前的编译环境一样,否则高版本的java生成的class也许在低版本中无法调用

‘伍’ 混淆的class文件怎么进行反编译

一般情况下Java应用的开发者为了保护代码不被别人抄袭,在生成class文件的时候都java文件进行了混淆,这种class文件用反编译工具得到的结果很难看懂,并且不能进行编译。
从研究的角度,浅析如何读懂这种反编译过来的文件。
例子一:赋值
反编译过来的代码如下:
Node node;
Node node1 = _$3.getChildNodes().item(0);
node1;
node1;
JVM INSTR swap ;
node;
getChildNodes();
0;
item();
getChildNodes();
0;
item();
getNodeValue();
String s;
s;
原始语句:
Node node;
Node node1 = currDocument.getChildNodes().item(0);
node = node1;
String s = node.getChildNodes().item(0).getChildNodes().item(0).getNodeValue();
注解:
JVM INSTR swap ; //赋值语句
练习:
String s1;
String s8 = node.getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
s8;
s8;
JVM INSTR swap ;
s1;
10;
Integer.parseInt();
int i;
i;

例子二:不带参数创建对象
反编译过来的代码如下:
JVM INSTR new #244 ;
JVM INSTR p ;
JVM INSTR swap ;
CrossTable();
CrossTable crosstable;
crosstable;
原始语句:
CrossTable crosstable = new CrossTable();
注解:
练习:
JVM INSTR new #246 ;
JVM INSTR p ;
JVM INSTR swap ;
Database();
Object obj;
obj;
例子三:带参数创建对象
反编译过来的代码如下:
JVM INSTR new #262 ;
JVM INSTR p ;
JVM INSTR swap ;
String.valueOf(s2);
StringBuffer();
s.substring(j, i);
append();
s6;
append();
toString();
s2;

原始语句:
s2 = (new StringBuffer(String.valueOf(s2))).append(s.substring(j, i)).append(s6).toString();
注解:
此语句实际上是:s2 += s.substring(j, i) + s6;
练习:
例子四:for循环
反编译过来的代码如下:
int k = 0;
goto _L4
_L8:
...
k++;
_L4:
if(k < as.length) goto _L8; else goto _L7
原始语句:
for(int k=0;k < as.length;k++)
{
...
}
注解:
例子五:while循环
反编译过来的代码如下:
String s1 = "";
goto _L1
_L3:
JVM INSTR new #262 ;
JVM INSTR p ;
JVM INSTR swap ;
String.valueOf(s1);
StringBuffer();
_$2(resultset, s, l);
append();
toString();
s1;
_L1:
if(resultset.next()) goto _L3; else goto _L2
原始语句:
String s1 = "";
while(resultset.next())
{
s1 = s1 + resultSetToString(resultset, s, l);
}

‘陆’ 如何将java中的.class文件反编译

安装Java jdk后
看安装目录里有没有jad.exe,没有要下载,一般都有的
配置Java环境变量
开始-运行-cmd-回车-进入命令行窗口:
cd+空格+class文件所在路径:
按下面的命令进行反编译:
例如:[2] jad -sjava example.class 回车
在目录里可以看到example.java源文件

[1] 反编译一个class文件:jad example.class,会生成example.jad,用文本编辑器打开就是java源代码
[2] 指定生成源代码的后缀名:jad -sjava example.class,生成example.java
[3] 改变生成的源代码的名称,可以先使用-p将反编译后的源代码输出到控制台窗口,然后使用重定向,输出到文件:jad -p example.class > myexample.java
[4] 把源代码文件输出到指定的目录:jad -dnewdir -sjava example.class,在newdir目录下生成example.java
[5] 把packages目录下的class文件全部反编译:jad -sjava packages/*.class
[6] 把packages目录以及子目录下的文件全部反编译:jad -sjava packages/**/*.class,不过你仍然会发现所有的源代码文件被放到了同一个文件中,没有按照class文件的包路径建立起路径
[7] 把packages目录以及子目录下的文件全部反编译并建立和java包一致的文件夹路径,可以使用-r命令:jad -r -sjava packages/**/*.class
[8] 当重复使用命令反编译时,Jad会提示“whether you want to overwrite it or not”,使用-o可以强制覆盖旧文件

[9] 还有其他的参数可以设置生成的源代码的格式,可以输入jad命令查看帮助,这里有个人做了简单的翻译:jad命令总结
[10] 当然,你会发现有些源文件头部有些注释信息,不用找了,jad没有参数可以去掉它,用别的办法吧。

‘柒’ 如何将java中的.class文件反编译

打开下载好的DJ_java_discompiler

选择file,之后点击open。之后出现以下界面。这里我选择一个test.class文件。

如果以后想看.class文件的源码,可以用这种方式查看。

‘捌’ 怎么反编译class

安装Java jdk后
看安装目录里有没有jad.exe,没有要下载,一般都有的
配置Java环境变量
开始-运行-cmd-回车-进入命令行窗口:
cd+空格+class文件所在路径:
按下面的命令进行反编译:
例如:[2] jad -sjava example.class 回车
在目录里可以看到example.java源文件
[1] 反编译一个class文件:jad example.class,会生成example.jad,用文本编辑器打开就是java源代码
[2] 指定生成源代码的后缀名:jad -sjava example.class,生成example.java
[3] 改变生成的源代码的名称,可以先使用-p将反编译后的源代码输出到控制台窗口,然后使用重定向,输出到文件:jad -p example.class > myexample.java
[4] 把源代码文件输出到指定的目录:jad -dnewdir -sjava example.class,在newdir目录下生成example.java
[5] 把packages目录下的class文件全部反编译:jad -sjava packages/*.class
[6] 把packages目录以及子目录下的文件全部反编译:jad -sjava packages/**/*.class,不过你仍然会发现所有的源代码文件被放到了同一个文件中,没有按照class文件的包路径建立起路径
[7] 把packages目录以及子目录下的文件全部反编译并建立和java包一致的文件夹路径,可以使用-r命令:jad -r -sjava packages/**/*.class
[8] 当重复使用命令反编译时,Jad会提示“whether you want to overwrite it or not”,使用-o可以强制覆盖旧文件
[9] 还有其他的参数可以设置生成的源代码的格式,可以输入jad命令查看帮助,这里有个人做了简单的翻译:jad命令总结
[10] 当然,你会发现有些源文件头部有些注释信息,不用找了,jad没有参数可以去掉它,用别的办法吧。

阅读全文

与class文件怎么反编译查看相关的资料

热点内容
搬家服务app怎么开发 浏览:414
腾讯云外卖服务器 浏览:154
单片机1602显示程序 浏览:255
php检测网络 浏览:336
程序员面试金典第6版 浏览:718
内存2g编译安卓 浏览:414
单片机小数点怎么亮 浏览:414
安卓手机怎么设置健康码双击两下就出来 浏览:266
同一个文件夹可以存在两个相同的文件吗 浏览:535
动态重编译jit 浏览:132
android蓝牙音频 浏览:451
mc国际版怎么加服务器 浏览:816
phphtaccess配置 浏览:747
dos命令锁定 浏览:486
python中调换数据位置 浏览:300
武汉市中石油加油什么APP优惠 浏览:545
程序员33岁以后的规划 浏览:858
招标文件加密流转 浏览:897
源码数据盈利可信吗 浏览:860
android闪烁图标 浏览:942