如何反编译.class文件?

时间:2012-06-10 18:07:19

标签: java compilation

  

可能重复:
  How do I “decompile” Java class files?

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

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

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

提前致谢。

2 个答案:

答案 0 :(得分:0)

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

当您对某个类进行模糊处理时,会删除执行时不需要但在文件中存在的所有内容,例如方法的名称。

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

答案 1 :(得分:0)

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