Java .class文件的反编译与反汇编

时间:2021-10-02 19:53:59

 

转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10840818.html

 

一:反编译

    通常用于第三方JAR包的逆向工程。

    一般我们拿到的jar包都是经过编译后的 .class文件,但是我们在开发过程中对jar包的调用有疑问,或者像深入探索原理时,根本无法查看源码,这对我们来说就比较沮丧了。

    这个时候,我们可以通过一些反编译工具,将 .class 文件逆向成 java源代码,这样就可以看到它的真面目啦~

    java反编译我们一般使用jad工具,或者网上提供的一些可用的第三方工具,很多的,找找就有了。

 

二:反汇编

    反汇编与反编译是两码事,虽然原材料都是 .class文件。

    上面提到的反编译是向上的,即根据编译后的结果,反向得到编译前的源码。

    而反汇编则是根据编译后的结果,倒推源码编译的过程,这里就可以看出代码逻辑真实编译、执行过程的每一步,对于性能优化、问题追溯等具有十分强大的帮助。

    Java反汇编使用jdk自带的工具——javap。

    安装了Java开发环境的电脑上,可以通过命令行 输入 :javap -c XXX.class 文件来查看该class文件的编译过程。