导航:首页 > 源码编译 > java代码反编译

java代码反编译

发布时间:2022-02-28 08:18:58

1. java的打包后jar包里面的class文件都能被反编译成为源码

jd-gui这个工具可以进行反编译的操作。 不过反编译的质量随着混淆的程度而定。
特别复杂的代码(如加密算法)反编译一般都有问题。可以建议用 javap -c -p 来看字节码。然后参考jvm指令。
一般编译的文件,都可以反编译为源码,但如果是经过加密、以及代码异常复杂,是很难恢复全部的源码。

2. java的反编译怎么做的

你做了很多了吧!很好,继续学吧!
class.forName():加载的是指定的一个类
.class文件是由JAVA虚拟机加载,解释执行的
阁下 可能把 方向搞错了。

JAVA的反射机制很强大,基本上所有的涉及到配置文件的,都有反射的影子。尤其是JAVA编程中的框架SSH,ibates等等。

这些框架因为使用了反射机制,在普通程序员眼里,就只有类和配置。这样系统很容易扩展和维护。

反射机制 也不要研究得太深,对于中国这个JAVA软件行业,还是应用维多,你应该不会想自己开发一个框架吧。

3. java反编译出来的代码求解,解出后可追加50分

为什么不用Java Decompiler反编译呢?
不会出现这样的情况
唯一不足的就是反编译后原来的变量会变成数值

4. 如何把apk反编译成java代码

一、找到apk中的class.dex:
把apk文件改名为.zip,然后解压缩其中的class.dex文件,它就是java文件编译再通过dx工具打包成的。

1、把class.dex拷贝到dex2jar.bat所在目录,直接拖动class.dex到dex2jar.bat,生成classes.dex.dex2jar.jar。
或者:1.在cmd下进入dex2jar.bat所在路径,然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称,比如:我的dex2jar.bat在D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOT路径下, classes.dex在D:\Android下,所以: 你进入dex2jar.bat路径下后,输入dex2jar.bat D:\Android\classes.dex,这样会生成一个jar文件。

2.用rar解压出jar文件中的class文件,然后用jad或DJ Java Decompiler反编译工具将.class文件反编译成.java文件

3、运行JD-GUI工具,打开上面的jar文件,在File下有个Save JAR Source,它可以生成src源代码。

5. java反编译

如今JAVA语言在全世界范围正如火如荼般的流行,它广范地应用在INTERNET的数据库、多媒体、CGI、及动态网页的制作方面。1999年在美国对JAVA程序员的需求量首次超过C++!

作者因最近分析一些JAVA程序,对JAVA的反编译进行了一番了解,下面将我所了解的情况作以下介绍,希望对JAVA爱好者有所帮助。

JAVA是采用一种称做“字节编码”的程序结构,分为小程序(嵌入到HTML文件中)和应用程序(直接在命令状态下执行)两种类型。无论哪种结构,一旦用JAVAC 命令编译后,均变成后缀为CLASS的同名可执行文件。这种文件是不可阅读的代码。

经查阅了SUN公司的JDK(JDK1.1.3)文档资料后,我找到了一个据称是可反编译JAVA的JAVAP文件(EXE),这个文件位于\JDK\BIN\ 下面,经按说明使用后,感到失望,原来这个“反编译”仅可反编译出JAVA程序的数据区(定义)、若干方法和类的引用等。

这里我用了一个简单例子来说明问题。

JAVA的源程序hello_java.java如下:

import java.applet.*;
import java.awt.*;
public class hello_java extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello Java!\n",20,20);
}
}

经用反编译命令:javap -c -package -public -private hello_java hello.java

得到的反编译结果(hello.java)如下:(有关javap命令的选择参数请见其使用说明,这里-c表示选择了反编译)

Compiled from hello_java.java
public synchronized class hello_java extends java.applet.Applet
/* ACC_SUPER bit set */
{
public void paint(java.awt.Graphics);
public hello_java();
Method void paint(java.awt.Graphics)
0 aload_1
1 ldc #1
3 bipush 20
5 bipush 20
7 invokevirtual #6
10 return
Method hello_java()
0 aload_0
1 invokespecial #5 ()V>
4 return
}

6. Java反编译代码解释:

首先,mecuryhope所回答的,仅仅是java层面的东西,但是却不了解反编译的过程。
其次,label175和break这些,并不是java代码,而是反编译的工具无法真实还原导致的。

label175是一个标签,而break label175是表示跳转到label175这里。

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

可以用java反编译器,DJ_java_discompiler 打开下载好的DJ_java_discompiler
选择file,之后点击open。之后出现以下界面。这里我选择一个test.class文件。
点击打开之后,出现以下反编译test.java后的界面。
这个是test.java的文件。可以看出反编译后的结果是正确的。
如果以后想看.class文件的源码,可以用这种方式查看。

8. 如何在linux中反编译java源代码

之前看同事使用JD-GUI来反编译java
.class文件,觉得很爽,不过一直以来也没有再次接触到这个问题,所以也没有对这个工具进行深入的了解。

今天无聊看了些技术文档,忽然想起这个工具来,上网一找。呼呼果真也有Linux的版本。
不过我网上资料显示主页上下载的gz包是32位的程序,我在64位的Fedora
12下可能有些问题,程序在运行时会调用不到关键的32位库而失败。幸运的是只要安装几个包即可:

yum install
libcanberra-gtk2.i686 PackageKit-gtk-mole.i686
gtk2-engines.i686

下载后:
tar -xzvf
jd-gui-0.3.2.linux.i686.tar.gz
sudo mv jd-gui
/usr/local/bin

至此jd-gui便可以在linux下运行,对于class或者jar文件都可以使用这个工具打开查看反编译源码
转载,仅供参考。

9. 如何将class文件反编译为java代码

jdgui 最简单易用的反编译工具, 直接把class拖进去 就可以看到.java代码了, 附件已经上传, 电脑打开可以下载

10. Java反编译后得到的不是Java源代码。

估计你得到的是java虚拟机指令,因为.class文件与java源代码不是一一对应的,但与虚拟机指令却是一一对应的,就像exe文件中的机器指令与汇编指令是一一对应的,要看懂这些代码可以参考java虚拟机指令集

阅读全文

与java代码反编译相关的资料

热点内容
java7并发编程实战手册pdf 浏览:340
windows打印机编程 浏览:234
怎么用纸做解压小方块 浏览:264
8253的编程方式 浏览:140
云服务器无法连接到当前网络 浏览:468
香港服务器什么时候租用 浏览:599
福州高精密三坐标测量仪编程 浏览:710
变量的作用域编译预处理 浏览:177
程序员买台式机好还是笔记本 浏览:812
安卓叮当猫年卡怎么样 浏览:428
自学旅游英语用什么app 浏览:154
linux端口开放命令 浏览:681
单片机小汽车 浏览:953
思考与决策pdf 浏览:624
ted加密货币 浏览:721
联想服务器如何安装硬盘阵列驱动 浏览:130
c语言编译器怎么打中文 浏览:492
加密exe文件打不开怎么办 浏览:14
仕女pdf 浏览:933
安装储存服务器是什么意思 浏览:114