使用 C# 修补 jar 中的 Java 类

逆向工程 爪哇 十六进制 修补 C#
2021-06-12 18:16:21

作为C#的初学者,我想知道是否可以在一个.class文件中打补丁.jar ?

由于 jar 文件往往表现得像“zip”文件,我认为可能可行的方法是解压缩 jar,修补*.class 中的十六进制偏移,然后将 jar 压缩回并覆盖原始文件。

任何示例或教程显示如何做到这一点?有更好的方法吗?

2个回答

有三种方法可以做到这一点:

  1. 反编译 JAR 的内容,对反编译的源代码进行更改,重新编译源代码并重建 JAR。如果 CLASS 文件没有被混淆或过于复杂,这很有效。
  2. 正如您在问题中回答的那样,您可以提取 CLASS,对其进行十六进制编辑以进行更改,然后使用 WinZip、WinRAR 或 7-zip 等工具将其重新添加到 JAR 中。
  3. 使用 Java 虚拟机工具接口在运行时动态修补程序。

但是,从您的问题中不清楚这与 C# 有什么关系。

经过更多的研究,我找到了这个教程这个关于使用SharpZipLib修补 jars 中的类文件的答案