是否可以读取正在运行的 Java 应用程序的内存?
我想学习如何,或者是否有可能以编程方式与黑匣子java应用程序交互(通过读取其数据)。以前有没有做过这类事情的研究/工作?
我可以想象在JVM上运行会使事情变得非常复杂。
@anon:使用任何JVM执行此操作都是相关的。您是否必须了解或控制 JVM 如何分配内存以从 Java 应用程序中提取数据的细节?
我想学习如何,或者是否有可能以编程方式与黑匣子java应用程序交互(通过读取其数据)。以前有没有做过这类事情的研究/工作?
我可以想象在JVM上运行会使事情变得非常复杂。
@anon:使用任何JVM执行此操作都是相关的。您是否必须了解或控制 JVM 如何分配内存以从 Java 应用程序中提取数据的细节?
你可以看看java.lang.instrument。只要您了解应用程序的类结构,它就允许您修改已经运行的JVM中的方法,并且您可能能够炮制一种方法,允许您提取或插入足以进行通信的数据(当然,这取决于可用的方法)。