当前位置:首页 » 电脑资讯 » 复制的class文件为什么不能反编译

复制的class文件为什么不能反编译

发布时间: 2022-08-20 23:41:10

㈠ Java class文件能反编译吗

能的!
装个Eclipse反编译插件: Jodeclipse、JadClipse
或XJad反编译

㈡ 怎么反编译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文件反编译不了

private 的属性 方法不会被反编译出来的。

还有就是某些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);
}

㈤ 谁有办法把class文件反编译为java吗,不能出任何错误。我用jd总是有错误,而且好像有层级限制

jd只是适合少量class文件,如果太多的话,类的引用就太繁琐了,偶尔会出错。我也是用XJAD反编译的,它可以反编译一个jar包。反编译有啥原理呢?虚拟机将*.java文件编译成字节码(*.class文件)然后,在编译成本地机器码,执行;我们一般用来传播的也就是*.class文件,这是一种有标准格式的字节码,开发工具按这个格式在将转换为*.java程序,就这样咯。而且,如果你要学了*.class文件的结构,自己都能计算出对应的*.java文件,只不过很复杂,很繁琐。

㈥ 我在eclipse中安装了javaclipse.jar和jad.exe,可是不能反编译class文件...

可以查看一下eclipse中class文件的默认打开方式是否是JadClipse Class File Viewer。如果不是默认,可以在Eclipse的Windows——> Perference——>General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”。设置完成后,双击*.class文件,eclipse将自动反编译

㈦ 如何将java中的.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软件包的bin文件夹下有一个javap程序,就是用来反编译的。
用法如java一样。就是先用javac变成字节码文件就是.class文件后,用javap 加上文件名就可以反编译了。
举个例子test.class,反编译用javap test就行了。

热点内容
为什么晚上更容易崩溃 发布:2024-05-15 14:26:50 浏览:52
眼睛热为什么抹点凉水很舒服 发布:2024-05-15 14:13:47 浏览:978
为什么微信音乐状态设置不了背景了 发布:2024-05-15 14:01:34 浏览:802
雷军为什么抢购小米 发布:2024-05-15 13:15:40 浏览:965
为什么把东西立起来 发布:2024-05-15 13:15:33 浏览:638
为什么男人喜欢看女人视频 发布:2024-05-15 13:11:25 浏览:685
为什么现在的东西没有小时候味道 发布:2024-05-15 13:01:12 浏览:231
玩手机为什么会眼睛疼 发布:2024-05-15 13:00:12 浏览:462
为什么晚上睡觉时感觉身体发热 发布:2024-05-15 13:00:05 浏览:831
螃蟹里为什么会出现绿色的东西 发布:2024-05-15 12:49:51 浏览:23