附加到正在运行的Java进程?

时间:2017-04-26 08:47:31

标签: java reflection code-injection inject

我正在尝试附加并调用方法并编辑从单独的java进程运行的java进程中的变量。

实施例: 进程1有一个循环,它打印一个私有的String变量,并在类中定义。 进程2(启动时),更改String消息,然后进程1将继续打印出已更改的变量。

这更像是我正在尝试的简单版本,但如果我能弄清楚,我可以很容易地找到其余的。

谢谢! Erouax

1 个答案:

答案 0 :(得分:0)

添加此内容是因为当我找到答案时,我完全忘记了我的问题。

使用Java代理并使用诸如Hotspot Attach API之类的东西进行注入是可能的(并且非常容易)。这是一种非常“可检测”的方法,但仍然有效。如果你希望保持你的注射更低调无论出于何种原因,我建议使用DLL注入你的类,并使用JNI从DLL调用你的输入方法。这些DLL和注入器很容易获得,如果你有很好的本土知识,甚至很容易制作。