我正在编写另一个大型java程序的插件。
我想在运行时修改java程序的某些java方法的一些字节码,以便能够拦截方法调用(即向方法中注入一些hook代码)。
有什么办法可以达到这个目的吗?
PS:
我检查了以下方法:
1.更改java程序的类加载器。 (我们无法改变它)
2.使用java代理。 (我们不能使用java代理,因为java代理会创建一个新的代理对象。我们不使用代理对象。我们需要挂钩java程序的对象,并使用该对象)
3.使用-javaagent选项(我们不能为java程序添加命令行选项。)
PS more [再次编辑]:
我的类是由 ext 类加载器加载的(我将 jar 文件放在 JAVA_HOME\lib\ext 文件夹中)。
大型java程序是由Browser加载的applet程序。当浏览器启动小程序时,它也会加载我的类。
PS更多更多[再次编辑]:
虽然它是在Applet中运行的。我可以得到完全的许可。因为我可以修改java.policy和java.security文件。
Thanks,
Calvin
只需使用 -javaagent 选项,该选项用于在运行时修改字节码。您可以找到有关 -javaagent 的更多信息这个链接或来自这个链接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)