所以我刚刚意识到反编译我的 Java 代码是多么容易。我一直在网上搜索,我似乎无法弄清楚为什么它如此简单。每次我在谷歌上搜索“为什么我可以对 .class
文件进行反编译?”或“为什么 Java 如此容易反编译”,我得到的只是指向可以轻松反编译我的代码的软件的链接。所以我转向你 StackOverflow:为什么 Java 可以转换回易于阅读的源代码,而 C++ 和其他语言对反编译不是很友好?
谢谢
最佳答案
因为 Java 字节码比汇编更接近(更相似)源代码。
特别是,.class
文件包括类名、方法名、字段和参数类型等的元数据...
Java(或 .Net)反编译器所需要做的就是查看每个方法主体中的指令,并将它们转换为适当的句法结构。
相比之下,像 C++ 这样的原生语言根本不包含任何元数据,因此反编译器需要重构所有内容。
关于java - 为什么反编译 Java 代码这么容易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12450510/