当前位置:首页 » 编程软件 » java如何将class文件反编译

java如何将class文件反编译

发布时间: 2024-05-02 23:22:06

Ⅰ 混淆的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文件反编译

可以使用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查看

Ⅲ java 只有class文件怎么反编译

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

Ⅳ 有没有这样的软件: 用jd-gui可以反编译class文件,但是不能修改。有可以反编译并直接修改的么

jd-gui可以将看到的反编译结果保存到一个zip压缩包里面,操作方法如下:

1、首先创建一个class文件,打开记事本。

Ⅳ 如何将java的class反编译为.j文本文件又如何将.j文件重新编译

网上有很多的反编译工具,基本都是简单的视图界面形式。你只要选择对应的class文件的路径,点反编译即可。想重新编译.java文件,如果是单个文件的话,开始--》运行--》cmd--》进入dos命令行,输入javac 要编译的文件名即可。如果要编译整个项目的话,就要借助TOMCAT,WEBLOGIC等应用服务器软件了,或者用myeclipse也能自动编译的。

Ⅵ 如何将java中的.class文件反编译

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

Ⅶ 怎么把class文件反编译成java文件

Java中使用eclipse提供的插件对class进行反编译成java文件,如下步骤:

1、安装jadclipse插件
使用jadclipse插件一定要注意Eclipse版本。jadclipse_3.2.4,它对应的是Eclipse3.2版,jadclipse_3.3.0可以用于Eclipse3.3M6以上版。大家千万不要把jadclipse_3.3.0放到Eclipse3.2中,也不要把jadclipse_3.2.4放到Eclipse3.3中,将jadclipse插件(版本自己选择)直接到Eclipse目录中的plugins文件夹下,然后打开Eclipse,选择"窗口"-"首选项"-"常规"-"编辑器"-"文件关联",点击文件关联中的*.class,下面就会看到"JadClipse Class File Viewer",选中它,点击缺省值,点击OK,将它设置为默认的类查看器。如图:

Ⅷ 怎么反编译java的class文件

工具:

DJ java discompiler.

方法:

  1. 打开DJ_java_discompiler,点左上角的file,选择open。

热点内容
python对齐打印 发布:2024-11-09 01:46:07 浏览:174
编译vbox61 发布:2024-11-09 01:42:12 浏览:915
超声波存储环境 发布:2024-11-09 01:41:33 浏览:284
国外访问学者研修计划 发布:2024-11-09 01:36:38 浏览:384
如何上传动态头像 发布:2024-11-09 01:33:52 浏览:935
怎么购买云存储空间 发布:2024-11-09 01:23:37 浏览:782
如何把安卓机上的图片备份 发布:2024-11-09 00:49:58 浏览:263
android分享微信 发布:2024-11-09 00:49:14 浏览:977
数列极限运算法则 发布:2024-11-09 00:48:37 浏览:896
k线公式源码 发布:2024-11-09 00:35:24 浏览:785