【问题标题】:How to de-compile a .class file? [duplicate]如何反编译 .class 文件? [复制]
【发布时间】:2012-06-13 19:47:40
【问题描述】:

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

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

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

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

提前致谢。

【问题讨论】:

    标签: java compilation


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 你必须注意这个特定的程序只能在 Windows 上工作,你必须适当地配置它来打开/反编译类。如果您想将其与您的 IDE 集成,则需要采取更多步骤,具体取决于 IDE。
      • 是的,我知道,但他说:“...我想知道是否有办法检索文件的源代码。”如果他想反编译一个文件,这是一个很棒的程序。
      猜你喜欢
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 2014-06-06
      • 2013-09-01
      • 2015-02-05
      • 1970-01-01
      • 2012-12-13
      相关资源
      最近更新 更多