Java的C语言BCI库



我正在寻找一个用于C或C++中Java的BCI(Bytecode Instrumentation)库,用于JVMTI代理。

最好的情况是类似于纯C.中的ASM或BCEL

到目前为止,我发现的最接近的东西只是Kelly O'Hair几年前写的一个演示java_crw_demo,从那时起,它就被用于Sun的/Oracle教程中。

你还知道什么吗?

一些基本原理:我正在构建一个插入工具,向java.lang.Object添加一个getter方法,并在Object的每个直接子类中重载这个getter。由于这个原因,我不能使用Java代理。此外,出于复杂性和速度的原因,我希望避免生成辅助JVM来执行检测。

我很早以前就开始用C编写一个,但由于缺乏动力,我没有走多远。AFAIK C中没有公开版本,但根据JVM规范编写一个简单的版本来满足您的需求应该不会太难。您应该对class文件格式的章节以及指令集的章节特别感兴趣。

我找到的唯一合理的解决方案是将字节码通过管道传输到使用ASM(或您选择的BCI框架)的单独Java程序。这并不快,但每个插入指令的类只需要执行一次。

相关内容

  • 没有找到相关文章

最新更新