2017-04-26 4 views
1

J'essaie d'attacher et d'appeler des méthodes et d'éditer des variables à partir d'un processus java qui s'exécute à partir d'un processus Java séparé.Attacher à un processus Java en cours d'exécution?

Exemple: Le processus 1 comporte une boucle qui imprime une variable String privée et définie dans la classe. Processus 2 (au démarrage), modifie le message Chaîne, puis le processus 1 continue d'imprimer la variable modifiée.

Ceci est plus d'une version simple de ce que j'essaie, mais si je peux comprendre cela, je peux facilement trouver le reste moi-même.

Merci! Erouax

+0

Peut-être jeter un oeil à cela: http://stackoverflow.com/questions/10942427/how-to-have-2-jvms-talk-to-one-another – mdewit

+0

@mdewit malheureusement pas ce que je suis après:/ – Erouax

+0

Jetez un oeil à ceci: http://stackoverflow.com/questions/22441878/attach-to-already-running-jvm – raven1981

Répondre

0

Juste ajouter ceci parce que j'ai complètement oublié ma question quand j'ai trouvé la réponse.

Il est possible (et très facile) de faire appel aux agents Java et d'injecter des éléments tels que l'API Hotspot Attach. C'est une méthode très "détectable", mais qui fonctionne toujours. Si vous souhaitez garder votre injection plus discrète pour une raison quelconque, je suggère d'utiliser l'injection de DLL à chuck dans vos classes et en utilisant JNI pour appeler votre méthode d'entrée de la DLL. Ces DLL et injecteurs sont assez faciles à trouver, même assez facile à faire si vous avez des connaissances natives décentes.