java如何反编译二进制文件,java怎么反编译
如何解决写爬虫IP受阻的问题?立即使用。
什么是反编译?
反编译的过程正好和编译相反,就是把编译好的编程语言恢复到未编译的状态,也就是找出编程语言的源代码。就是把机器能理解的语言转换成程序员能理解的语言。
Java语言中的反编译一般指将class文件转换成java文件。(推荐学习:java课程)
有了反编译工具,我们可以做很多事情,最主要的功能就是有了反编译工具,我们就能读得懂Java编译器生成的字节码。.比如我们会有可以洞悉Java语法糖背后的原理。。
Java常用反编译工具
本文主要介绍四种Java反编译工具:javap、jad和cfr,以及可视化反编译工具JD-GUI。
JAVAP
Javap是jdk附带的一个工具。它可以反编译代码或者查看java编译器生成的字节码。java和其他两个反编译工具最大的区别就是Java生成的文件不是Java文件,不像其他两个工具生成的代码那么容易理解。
javap没有把字节码反编译成Java文件,而是生成了一个我们能理解的字节码。其实javap生成的文件还是字节码,只是程序员稍微能看懂一点。如果你对字节码有一定的了解,还是可以理解上面的代码的。其实就是把String转换成hashcode,然后进行比较。
JAD
JAD是一个很好的反编译工具。你可以通过下载一个执行工具来反编译类文件。还是上面的源代码。用jad反编译后,内容如下:
命令:jad.exe decompilation . class将生成一个Decompilation.jad文件
CFR
JAD很好用,可惜很久没更新了,只能换个新工具了。CFR是个不错的选择。和JAD相比,他的语法可能稍微复杂一点,不过还好,他会用。
现代的Java特性——Java 8 lambdas(Java和早期版本的Java beta 103)会被CFR反编译,Java 7 String已经反编译,但是CFR完全是用Java 6写的。
JD-GUI
JD-GUI是用C开发的Java反编译工具,由Pavel Kouznetsov开发,支持Windows、Linux和苹果Mac Os。并提供了Eclipse平台下的插件JD-Eclipse。
JD-GUI基于GPLv3开源协议,个人使用完全免费。JD-GUI主要提供可视化操作,你可以直接拖拽文件到窗口。效果图如下
这就是java反编译的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。