需求:我们需要破解plugin.jar中的一个类,具体来说,改变一个类的非静态方法的详细实现。与最新的 jre 一样, -Xbootclasspath/p 不起作用,只有 -Xbootclasspath/a 起作用。我们也不想改变整个jre。
我们知道我们最后的解决方案是直接更改 plugin.jar 文件。但是想知道是否有更好的解决方案,不需要直接更改jar文件。
例如,不知道 JVMTI 或 JVMPI 之类的东西是否会起作用?或者以某种简单的方式改变JVM的实现?
需求:我们需要破解plugin.jar中的一个类,具体来说,改变一个类的非静态方法的详细实现。与最新的 jre 一样, -Xbootclasspath/p 不起作用,只有 -Xbootclasspath/a 起作用。我们也不想改变整个jre。
我们知道我们最后的解决方案是直接更改 plugin.jar 文件。但是想知道是否有更好的解决方案,不需要直接更改jar文件。
例如,不知道 JVMTI 或 JVMPI 之类的东西是否会起作用?或者以某种简单的方式改变JVM的实现?
取决于你的类,但你可能会使用javaagent来注入一个自定义 ClassFileTransformer,如果被查询,它会加载一个不同的类......(javaagents 上的简单示例)。但这仅适用于之前未加载该类的情况...