Injecter un code dans un processus ? [Résolu/Fermé]

Signaler
Messages postés
83
Date d'inscription
dimanche 19 juin 2016
Statut
Membre
Dernière intervention
19 janvier 2018
-
OmeGaFire_
Messages postés
83
Date d'inscription
dimanche 19 juin 2016
Statut
Membre
Dernière intervention
19 janvier 2018
-
Bonjour,

Tout d'abord je tiens à préciser que ce que je demande est, je pense, très compliqué à mettre en oeuvre.

Je voudrais savoir si il est possible d'injecter un code compilé dans un jar, dans le processus javaw.exe, et, si vous savez en plus comment le faire, vous pouviez me donner des exemples.

Bonne journée, OmeGaFire_.

12 réponses

Messages postés
8649
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
6 juillet 2019
375
Salut,

Quand tu lances ton serveur, le processus javaw.exe se lance donc si ton fichier .jar est présent sur la plate-forme bah voila x).
OmeGaFire_
Messages postés
83
Date d'inscription
dimanche 19 juin 2016
Statut
Membre
Dernière intervention
19 janvier 2018

Bonjour,

Je ne parle pas de serveur. J'ai un processus javaw.exe et j'aimerais injecter un jar compilé dedans alors que le processus est lancé. Comment je fais ?
krakixx
Messages postés
3396
Date d'inscription
vendredi 27 novembre 2009
Statut
Membre
Dernière intervention
9 novembre 2017
488 > OmeGaFire_
Messages postés
83
Date d'inscription
dimanche 19 juin 2016
Statut
Membre
Dernière intervention
19 janvier 2018

je doute que sa soie possible sa serais une fail majeur de sécurité :o
Pierre1310
Messages postés
8649
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
6 juillet 2019
375
Oui une fois le processus lancé ce n'est pas possible sinon ce serai la fête x)
Messages postés
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019
2475
Bonjour,

C'est tout à fait possible et sans avoir à contourner quoi que ce soit en terme de sécurité. C'est même le principe de base des serveurs Java EE qui chargent et des déchargent des jar/war/ear à la volée potentiellement sans jamais arrêter le processus du serveur Java.

Cela se base sur le fonctionnement des ClassLoader et la manière dont Java lit les fichiers .class pour les transformer en objet Class dont on peut ensuite utiliser toutes les fonctionnalités.
KX
Messages postés
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019
2475
Comme ça tout fait, j'en n'ai pas sous le coude, mais ton besoin a l'air relativement usuel donc la documentation pourrait suffire :

Pour les exemples basiques voir la javadoc de ClassLoader :
https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html

Sachant que pour les fichiers ce sûrement un URLClassLoader :
https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html

Remarque : le JarClassLoader n'est pas standard dans l'API Java, mais il devrait presque être magique pour ton besoin :
https://docs.oracle.com/javase/tutorial/deployment/jar/jarclassloader.html
https://docs.oracle.com/javase/tutorial/deployment/jar/examples/JarClassLoader.java
OmeGaFire_
Messages postés
83
Date d'inscription
dimanche 19 juin 2016
Statut
Membre
Dernière intervention
19 janvier 2018
> KX
Messages postés
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019

Merci tu me sauves la vie ;)
OmeGaFire_
Messages postés
83
Date d'inscription
dimanche 19 juin 2016
Statut
Membre
Dernière intervention
19 janvier 2018
> KX
Messages postés
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019

Un lien pour télécharger le JarClassLoader ?
KX
Messages postés
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019
2475
Tu as le lien vers le code dans ma réponse précédente.
OmeGaFire_
Messages postés
83
Date d'inscription
dimanche 19 juin 2016
Statut
Membre
Dernière intervention
19 janvier 2018
> KX
Messages postés
16093
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
11 décembre 2019

Ah ok c'est pas une API à part