C中的Java BCI库

时间:2012-07-30 09:38:32

标签: java c instrumentation jvmti bcel

我正在寻找用于C或C ++中的Java的BCI(字节码检测)库,以便在JVMTI agent中使用。

最佳案例场景可能是纯粹的C. {/ 3}}或ASM

到目前为止,我发现的最接近的事情只是几年前由Kelly O'Hair编写的一个演示BCEL,并且从那时起用于Sun的/ Oracle教程。

你还知道其他什么吗?

  

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

2 个答案:

答案 0 :(得分:1)

我很久以前就开始在C中写过一篇,但由于缺乏动力,我没有走得太远。 AFAIK在C中没有公开发布,但根据JVM Specification编写一个简单的发布版本应该不会太难。您应该对the class file format以及the instruction set上的章节特别感兴趣。

答案 1 :(得分:1)

我发现唯一合理的解决方案是将字节代码实际传输到使用ASM(或您选择的BCI框架)的单独Java程序。这并不快,但每个仪表课只需要做一次。