2

可能重复:
如何“反编译”Java 类文件?

我是java新手,我想知道是否有办法.java从其编译文件(.class文件)中检索文件(即文件)的源代码。

我已经阅读了编译过程,即解析、语法和语义树、中间代码生成、使用的宏等。这听起来像是一个非常复杂的过程。逆向工程将更加困难。因此,我认为这是不可能的,但我不得不问。我用谷歌搜索了它,但找不到任何令人满意的东西。

我还在课堂上学习了代码混淆。如果可以进行反编译,那么它对混淆文件的表现如何?

提前致谢。

4

2 回答 2

0

[编辑:我不会完成答案,因为这个问题是重复的,这只是对问题第二部分的附加评论]

当您混淆一个类时,您会删除执行不需要但存在于文件中的所有内容,例如方法的名称。

事实上,混淆一个孤立的类并不会消除很多,因为其他类需要方法或可见字段的名称。所以通常你会使用像 proguard 这样的工具来混淆一组类。

于 2012-06-10T18:10:10.107 回答
0

是的,顺便说一句,非常简单,获取一个名为DJ Java Decompiler(在 google 中搜索很容易找到)的程序,安装后,您只需打开 .class 文件,它会显示所有格式化和缩进的代码。仅限 Microsoft Windows 应用程序

于 2012-06-10T18:11:31.790 回答