【发布时间】:2013-07-31 04:25:10
【问题描述】:
我有一个 jar 文件,我需要编辑一个特定的类并将其保存回 jar 文件中。 我尝试了不同的反编译器,但无法保存回 jar。
我尝试使用 Eclipse 和 JADCLIPSE 进行反编译。 通过使用它,我可以看到反编译的类文件,但我无法编辑它。 谁能帮我解决这个问题?
【问题讨论】:
标签: java reverse-engineering executable-jar decompiler
我有一个 jar 文件,我需要编辑一个特定的类并将其保存回 jar 文件中。 我尝试了不同的反编译器,但无法保存回 jar。
我尝试使用 Eclipse 和 JADCLIPSE 进行反编译。 通过使用它,我可以看到反编译的类文件,但我无法编辑它。 谁能帮我解决这个问题?
【问题讨论】:
标签: java reverse-engineering executable-jar decompiler
我使用JD-GUI 来反编译.jar,这有一个选项可以导出所有反编译的类。如果您正在反编译的 .jar 没有被混淆等,那么这个源应该是可重新编译的(否则您将需要通过字节码编辑来解决它)。
提取类后,您需要确保在编译时使用指向.;MyJar.jar 的-CP 参数进行编译,以便在编译时可以找到.jar 中的依赖项。
重新编译并获得新的 .class 文件后,使用 7z 打开 .jar 并用新的 .class 文件替换旧的 .class 文件。您可以使用命令行 jar 工具执行此步骤,但 7z 更容易。同样,如果 jar 被混淆并且类文件具有相同的名称,只有区分大小写的区别,您可能需要使用 Linux 重新插入 .class 文件。 (可能在 Windows 上可能,但我从未深入研究过)。
我之前反编译过这个Java程序添加了一个命令行界面,你大概可以在cmets中找到链接;
【讨论】:
还有很多免费的实用程序,比如 WinZip 、7-ZIP 你可以使用它们。
在打开 jar 文件之前,只需将 jar 的扩展名更改为 zip 文件,然后提取您要编辑的特定类文件,然后使用任何反编译器对其进行反编译,进行更改,重新编译,然后最后将其放回压缩文件。
希望对你有帮助。
谢谢
【讨论】: