java - 如何捕获java程序中的读取和写入?

标签 java instrumentation jvmti javaagents

我正在尝试创建一个工具,可以捕获java程序进行的所有读写操作。另外,我想知道访问/修改哪个对象的哪些字段。

我目前查看的是:-

1) java.lang.instrument 我对此无能为力。我无法理解如何编写一个可以访问正在运行的程序并在不同对象/字段和任何相关内容上创建监视的代理。如果您对此有任何想法或信息,我将不胜感激。

2) jvmti 我查看了 jvmti 并尝试创建一个 jvmti 工具,但我发现要获取对象,我需要 JVMTI_EVENT_OBJECT_ALLOC 作为潜在功能。但我想,事实并非如此。此外,我读到此事件不是为 new 命令调用的。因此,目前看来,这似乎也不适用。

所以,我想知道你们是否知道有什么方法可以做我想做的事情,无论是使用上述方法还是您可能知道的任何其他技术/工具?

注意:我无权访问该应用程序的源代码。我拥有的只是类文件。

最佳答案

关于java - 如何捕获java程序中的读取和写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822565/

相关文章:

java - Java 小程序中的 Tiff 图像

c# - 在运行时动态地将代码添加到方法的开头/结尾

Python:如何比较两个二进制文件?

java - 使用 JVMTI 测量 Java 的执行时间

java - 在 ServletOutputStream 中写入字节时管道损坏

Java Android 应用程序 java.lang.NoSuchMethodException : android. graphics.FontFamily.<init> []

java - GridBagLayout 无法正确布局

node.js - 从 Node.js 分析核心转储的工具

Java/JVMTI : Usage of JavaVM-parameter in Agent_OnLoad(JavaVM, 字符*,无效)

Java 字节码检测 : NullPointerException in reflective call to defineClass