CreateRemoteThread() permet d'injecter le thread, mais le code doit déjà se trouver dans le processus distant.
Mais comme j'ai vu que la fonction LoadLibraryA() ou LoadLibraryW() ne prend qu'un paramètre, on peut toujours tenter deux injections à la suite:
- Une qui charge une DLL à toi
- Puis une qui appelle une fonction de cette DLL
(Il y a moyen de savoir à quelle adresse la DLL a été chargée avec CreateToolHelp32Snapshot() et Module32First()/Module32Next(), puis tu charges la DLL chez toi et tu fais le calcul (LoadLibrary(), GetModuleBaseAddress(), GetProcAddress()) pour savoir où la fonction se trouve dans le processus distant).
PS: Là, on se lance dans le Hack de haut niveau :p
C'est le genre de truc qu'un virus peut faire aux programmes du même user que lui, donc imagine le bordel si tu as le malheur d'exécuter un programme infecté en tant qu'admin...
Partager