如何利用反编译软件打开并修改class文件
 没办法完全反编译所以的class文件为java文件的,因为java中编译具有不可逆性。
但是可以将每个文件反编译,之后直接放到相应的包路径下来进行重新编码。
第一步:通过附件的「jd-gui」打开jar文件;
第二步:将每个class文件的内容,粘贴到一个新建的java工程中(包路径必须相同);
第三步:修改需要修改的类,之后如果运行没问题的话,直接导出为jar包即可。
备注:其实此过程中出错的几率还是很大的,如果能够实现百分百编译的话,那么所以的项目也就间接开源了,这肯定是不现实的。 
如何反编译class文件,简单快速
 搜索关键词「jd-gui」,点击进入jd-gui的官方网站。
(1)点击「JD-GUI」链接
(2)点击「Download」链接
(3)点击选择您要下载的版本,如果为windows系统请选择"xxx.windows.zip",如果为苹果或linux系统则选择其他的下载链接。
(1)下载后进行解压
(2)双击「jd-gui.exe」文件
(3)找到您要反编译的class文件。
(4)用鼠标拖拽到jd-gui软件的灰色区域。
此时可以看到,class文件被反编译为了java文件,并且代码格式很好。
在右侧可以看到java的包层级,类,方法等等,十分方便。 
可以反编译.class文件吗
 当然可以了。在java软件包的bin文件夹下有一个javap程序,就是用来反编译的。
用法如java一样。就是先用javac变成字节码文件就是.class文件后,用javap 加上文件名就可以反编译了。
举个例子test.class,反编译用javap test就行了。 
怎么反编译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.
方法:
- 打开DJ_java_discompiler,点左上角的file,选择open。 
如何反编译并修改class文件
反编译后,修改源码,再编译。
class如何用cmd命令反编译
 网吧大部分操作系统都关闭了windows信使服务。所以你的命令是不能成功的。
如果没装arp防火墙
你可以通过arp欺骗来达到对方开启网页显示你的信息来达到你的目的。 
混淆的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);
 } 
将.class文件反编译成.java文件都有哪些工具
 反编译工具jad简单用法
以下假设jad.exe在c:\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 
