[c/win32] injection de dll 2 méthodes (remotethread propre & registry)

Description

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.

Source / Exemple :


/* Tout est dans le zip. */

Conclusion :


Petite note pour l'utilisation du programme :

-Pour ajouter une dll dans la clef de registre, vous devez séparer les différentes dll par un espace.
ex :

c:\dll1 dll2 dll3

Attention que à la première dll avec un chemin rencontré , tous les autres sont ignoré, cet pour cela qu'il est préférable de mettre les dll dans le répertoire système de windows avec toutes les autres ;) .
-Pour supprimer la dll injectée de la clef de registre vous devez entrer celle-ci tel que vous l'avez taper dans le chemin des dll.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.