Yop à tous,
Je sais qu'il existe déjà quelques source sur l'injection de dll, mais ma source apporte certaine chose en plus :
- Avec la méthode RemoteThread, outre la fonction qui permet d'injecter, j'ai ajouter celle qui permet de supprimer la dll injectée des ressources du processus cible (une sorte de Free).
- Noté aussi l'utilisation de la fonction WaitForSingleObject(hThread, INFINITE); qui permet d'attendre la fin de l'éxécution du thread.
- J'ai ajouté une méthode qui pourrait être intéressente dans certain cas. L'injection via la clef de registre AppInit_DLLs .
Petite explication sur la méthode d'injection avec la registry :
Tout dabord il faut savoir que l'injection de dll ce fait au démarrage de windows sur tous les processus qui utilise User32, c'est a dire la totalité des applications GUI, donc pour les applications CUI cette méthode ne convient pas.
Ensuite, comme dit plus haut, cette dll sera injectée dans beaucoup de processus , si vous voulez cibler un processus en particulier utilisé plutot la méthode RemoteThread.
Et enfin votre dll une fois injecté restera comme ressource des processus pendant toute la durée de leurs vie.
J'allais oublié comme la dll est injectée au démarrage vous devez évidement redémarrer votre pc.