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虚拟机指令集