当前位置: 首页 > 面试题库 >

重新编译包含goto指令的反编译Java(JD / JAD)源

吕作人
2023-03-14
问题内容

我已经反编译了一个jar(可能出于调试目的)并希望重新编译它。

我已经使用了JAD和JD,并且由于goto指令而无法编译

例如

      goto _L1

      ...
      L1: 
      return true;

有没有简单的方法(或任何方法)来重新编译它?(除了手动重构和删除goto的外)


问题答案:

不,没有。在您的情况下,JD和JAD都无法正确地反编译类文件。“ goto”语句是有关实际程序流程的提示。

您可以直接与Java Decompiler团队联系,发送一个类文件,该文件会导致反编译导致非法源代码,并询问这是当前版本中的错误还是尚未实现的功能。



 类似资料:
  • 变量res的值应等于3。但是当我打开优化时,编译器错误地重新排列了指令,并且res包含一些垃圾。一些可能的重新排序示例: 这是编译器中的错误吗?还是不允许像这样访问结构数据成员? 编辑: 我刚刚意识到之前的代码实际上有效,抱歉。但这不起作用: 当编译时不知道变量i时,编译器会错误地重新排序指令。

  • 问题内容: 我正在寻找一个批处理反编译Java类的程序。我找到了JAD,但它不支持Java的某些新功能,该程序的好处是可以从命令行执行并自动生成* .java文件。 我还找到了JD-GUI。它支持Java的大多数功能,但是缺点是它不能执行批处理。您需要使用该程序打开类文件,然后单击“保存”。 有没有办法让JD-GUI像JAD一样进行批处理? 问题答案: 强烈要求对JD- GUI进行命令行反编译,但

  • 我使用maven命令来清理、构建整个项目、创建war并部署到服务器。我不能使用Intellij来做这件事,因为我只有社区版。它在与intellij相同的目录中构建项目。 为了加快速度,我编写了一个脚本,可以在本地“target”目录中找到比服务器中更新的已编译文件,并进行复制。虽然一切正常,但问题是Intellij并没有将使用maven编译的类视为应该跳过并重新构建整个项目的类。 目前它的工作原理

  • 问题内容: 您可以推荐用于Eclipse的Java反编译器吗?我的其他问题是,使用来自其他Java程序的反编译代码有什么限制?非法还是什么?我对许可证知之甚少。谢谢阅读。 问题答案: 我建议在Google上弹出一个JD Java反编译器。它真的很好。 至于限制,您必须阅读特定软件的许可,否则可能会写明禁止任何反编译方式。

  • 主要内容:实例,实例,实例,实例,实例,实例,实例以反引号 ` 开始的某些标识符是 Verilog 系统编译指令。 编译指令为 Verilog 代码的撰写、编译、调试等提供了极大的便利。 下面介绍下完整的 8 种编译指令,其中前 4 种使用频率较高。 `define, `undef 在编译阶段,`define 用于文本替换,类似于 C 语言中的 #define。 一旦 `define 指令被编译,其在整个编译过程中都会有效。例如,在一个文件中定义

  • 问题内容: 我正在尝试反编译 Java项目(.jar)文件,并且能够从其中获取.java文件。现在如何将其编译回来?我可以将.java文件作为单个文件添加到Netbeans。但是如何将其作为项目添加并编译呢?该项目是JavaFX项目。所以请帮我。 问题答案: 有很多方法可以实现此目的,但是我认为您不能像这样直接在框内(在本例中为开箱)将项目导入jar中。 我们可以使用最基本的技术(我承认有点脏),