Injecter un code dans un processus ?

Résolu
OmeGaFire_ Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   -  
OmeGaFire_ Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   -
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_.

2 réponses

  1. Pierre1310 Messages postés 8854 Statut Membre 652
     
    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).
    0
    1. OmeGaFire_ Messages postés 83 Date d'inscription   Statut Membre Dernière intervention  
       
      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 ?
      0
      1. krakixx Messages postés 3404 Date d'inscription   Statut Membre Dernière intervention   721 > OmeGaFire_ Messages postés 83 Date d'inscription   Statut Membre Dernière intervention  
         
        je doute que sa soie possible sa serais une fail majeur de sécurité :o
        0
    2. Pierre1310 Messages postés 8854 Statut Membre 652
       
      Oui une fois le processus lancé ce n'est pas possible sinon ce serai la fête x)
      0
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    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.
    0
    1. OmeGaFire_ Messages postés 83 Date d'inscription   Statut Membre Dernière intervention  
       
      Tu as un code le permettant ?
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      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
      0
    3. OmeGaFire_ Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   > KX Messages postés 19031 Statut Modérateur
       
      Merci tu me sauves la vie ;)
      0
    4. OmeGaFire_ Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   > KX Messages postés 19031 Statut Modérateur
       
      Un lien pour télécharger le JarClassLoader ?
      0
    5. KX Messages postés 19031 Statut Modérateur 3 020
       
      Tu as le lien vers le code dans ma réponse précédente.
      0