2

是否可以反编译 Java 应用程序并使用反编译的代码对其进行调试?

我对使用反编译代码进行调试的能力更感兴趣,而不是反编译本身(这很简单)。

4

4 回答 4

2

Yes there are java decompilers available on internet, both paid and unpaid. I am currently using one called 'DJ java decompiler', which provides a free trial version, just google it.

You can hope that the jar you are trying to decompile and make some sense out of the class files, is not obfuscated.

于 2013-10-03T08:57:37.623 回答
2

是的,可以点击免费下载java反编译器

其他链接link1 link2

于 2013-10-03T08:58:05.800 回答
2

正如许多其他人已经指出的那样,这确实是可能的。

如果您只想反编译一个 JAR 并通过直接运行它们(即使用它们作为源)来调试反编译的类,那么有很多反编译器可以很好地为您服务。

如果您计划调试应用程序中使用的 JAR,请在选择反编译器时注意正确的源代码行号对齐功能。以this question为例。你可以得到这样的反编译代码:

Line X /* Line Y */ int x = y
Line Y (anything can be here, it could even not exist)

X 和 Y 的值完全不同。这意味着反编译的 .java 文件中的 X 行对应于已编译代码的 Y 行。调试 jar 时,您必须在源文件的 Y 行放置一个断点以停止。调试起来可能很烦人。有一些反编译器可以将源文件中的反编译代码与行号对齐。

Line X /* Line X */ int x = y

我在 Eclipse 上成功使用了JD-Eclipse Realign。相信我,使用源代码行对齐来调试反编译代码确实会有所作为。

于 2013-10-03T09:01:30.610 回答
0

If the application decompiles nicely and hasn't been stripped of debug info, sure.

于 2013-10-03T08:57:47.313 回答