导航:首页 > 源码编译 > 如何对class文件进行反编译

如何对class文件进行反编译

发布时间:2023-05-16 10:29:39

❶ 混淆的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没有参数可以去掉它,用别的办法吧。

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

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

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

选择一款反编译工具即可
1、JD-GUI
JD-GUI 是显示java 源代码 *.class文件的 图形界面工具。可以在这里下载:JD-GUI-DownLoad
下载下来后,打开该工具,直接将jar包 拖拽到 显示窗口即可查看源代码。
2、JD-Eclipse
(1)下载 JD-Eclipse 插件。下载后,打开Eclipse,选择:Help-->Install New Software...-->add --archive... 按步骤操作即可:
安装后,重启Eclipse,应该可以查看 *.class文件的代码。
ADD and Archive...
3、JD-IntelliJ
JD-Intellij 是 IntelliJ IDEA 的插件,安装了这个插件,可以方便查看 jar包源码。下载JD-Intellij
以Android studio为例: 可以离线安装也可以在线安装。

❺ 怎么把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,将它设置为默认的类查看器。如图:

❻ 怎样使用javap来反编译class文件

当然可以了。在java软件包的bin文件夹下有一个javap程序,就是用来反编译的。 用法如java一样。就是先用javac变成字节码文件就是.class文件后,用javap 加上文件名就可以反编译了。 举个例子test.class,反编译用javap test就行了。

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

一、反编译:下载一个jad
反编译哗卜工具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

二:修改、再编译
用Eclipse新建工程,再将反编译出的Java文件按原样导入工程,就可以修改代码。修改并调试后胡者,点击Eclipse菜单中的文件→导出→Java→可运行的JAR文件裤芦薯,选择配置工程和导出路径,然后点完成即可导出。

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

打开下载好的DJ_java_discompiler

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

点击打开之后,出现以下反编译test.java后的界面。

这个是test.java的文件。可以看出反编译后的结果是正确的。

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

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

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

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

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

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

阅读全文

与如何对class文件进行反编译相关的资料

热点内容
软通动力程序员节2021 浏览:845
安卓系统如何卸载安装包 浏览:868
短信删除助手文件夹 浏览:688
java办公自动化 浏览:340
php中超链接 浏览:253
linux默认路由设置 浏览:36
linux如何挂载iso 浏览:432
vs程序换文件夹后不能编译 浏览:557
安卓源码编译输入脚本没反应 浏览:47
phpmysql自增 浏览:167
把ppt保存为pdf 浏览:533
汽车密封件加密配件 浏览:887
黑马程序员15天基础班 浏览:560
java调整格式 浏览:521
香港云服务器租用价 浏览:78
linuxsublime3 浏览:560
imac混合硬盘命令 浏览:278
沈阳用什么app租房车 浏览:857
00后高中生都用什么app 浏览:239
戴尔塔式服务器怎么打开独立显卡 浏览:808