对于Java字节码注入,有ASM框架和BCEL和Javaassist库。
然而,我需要在本地代码中进行注入,因为一些Java类已经在Java代理程序运行时加载,例如java.lang.Thread、java.lang.Class等。
是否有用于在本地代码中注入Java类的库?
编辑: 似乎有点混淆。
我的意图是: 创建一个本地Java代理程序,使用JVMTI API在类被加载时更改字节码,使用OnClassLoad事件钩子。
对于Java字节码注入,有ASM框架和BCEL和Javaassist库。
然而,我需要在本地代码中进行注入,因为一些Java类已经在Java代理程序运行时加载,例如java.lang.Thread、java.lang.Class等。
是否有用于在本地代码中注入Java类的库?
编辑: 似乎有点混淆。
我的意图是: 创建一个本地Java代理程序,使用JVMTI API在类被加载时更改字节码,使用OnClassLoad事件钩子。
一旦类被加载,就无法更改其字节码。您可以确保在加载之前运行您的仪器,或者创建一个新的ClassLoader,并通过不要求父类重新加载其中的类。但是,您不能将这些类与在ClassLoader之外加载的代码一起使用,因为该代码将引用先前加载的未更改的类。