如何反编译 java class 文件?
How do I decompile a java class file?
我知道有人问过类似的问题,但没有人回答如何用 java 反编译 java class。我想在 java 中制作一个 java 反编译器,但我不知道如何获取 class 文件的内容并将其转换为 java 文件。
我很确定我能够打开一个 jar 文件并查看它的内容,但我的问题是如何反编译 jar 中的 class 文件?我不需要反编译器;我想自己做。
我假设 java 的每个编译器都以相同的方式加密代码,我只想知道那是什么或如何反转它。我不太了解 java 代码是如何编译的,但我很确定它与 jdk 开发人员工具包有关。
假设我将整个 class 加载到一个字节数组中。我如何将字节数组转换为可读代码。
我现在有一个 java 反编译器,但它是一个可执行文件,所以我不能反编译它,看看它是如何完成的。
我知道回答这个问题需要很多信息,而且我对 Java 如何编译 java 文件知之甚少,所以如果你能指出我正确的地方学习 java 如何编译东西的方向。 您能否简单地 post 链接到教程或我应该阅读的内容以了解如何反编译 class 或 java 如何首先编译 classes ?
我将从调查 class file format 开始。构建一些东西来解析它的结构并从那里跳进去。
当你最终编写处理code attributes in the class file, all of the bytecode for a given method will be in an array. From there you'd start applying the JVM specification如何反编译特定指令的代码时。
也有 libraries 已经提供了很多这样的功能,并且可以帮助您 bootstrap 自己。
我知道有人问过类似的问题,但没有人回答如何用 java 反编译 java class。我想在 java 中制作一个 java 反编译器,但我不知道如何获取 class 文件的内容并将其转换为 java 文件。
我很确定我能够打开一个 jar 文件并查看它的内容,但我的问题是如何反编译 jar 中的 class 文件?我不需要反编译器;我想自己做。
我假设 java 的每个编译器都以相同的方式加密代码,我只想知道那是什么或如何反转它。我不太了解 java 代码是如何编译的,但我很确定它与 jdk 开发人员工具包有关。
假设我将整个 class 加载到一个字节数组中。我如何将字节数组转换为可读代码。
我现在有一个 java 反编译器,但它是一个可执行文件,所以我不能反编译它,看看它是如何完成的。
我知道回答这个问题需要很多信息,而且我对 Java 如何编译 java 文件知之甚少,所以如果你能指出我正确的地方学习 java 如何编译东西的方向。 您能否简单地 post 链接到教程或我应该阅读的内容以了解如何反编译 class 或 java 如何首先编译 classes ?
我将从调查 class file format 开始。构建一些东西来解析它的结构并从那里跳进去。
当你最终编写处理code attributes in the class file, all of the bytecode for a given method will be in an array. From there you'd start applying the JVM specification如何反编译特定指令的代码时。
也有 libraries 已经提供了很多这样的功能,并且可以帮助您 bootstrap 自己。