J'ai écrit un petit programme qui charge une DLL et ses fonctions dans l'espace mémoire d'un processus quelconque (injection tout en mémoire).
Mon programme fonctionne très bien sous XP : la DLL se charge dans le processus distant, les fonctions sont exécutées, et je quitte proprement à la fin.
J'ai essayé le prog. sous Vista et la, ca marche moins bien... :(
La DLL se charge bien (j'utilise "tasklist /m" pour m'en assurer) mais pas moyen d'exécuter les fonctions... Et même pire, cela fait planter le processus qui subit l'injection...
Existe t'il des API spécifiques sous Vista pour ce genre de manip ?
Y-a-t'il des protections particulières sur Vita ?
Quelqu'un a-t'il déjà réussi de l'injection de code sous Vista ?
... ^^
Eh moi sous vista je ne rencontre aucun problemes a ce niveau la...
Est-ce que ton appli est lancee en tant qu'admin avec le privilege debug ?
Quelle est ta methode d'injection ?
Sans plus d'info et ou un extrait de code il va etre difficile de cibler le probleme...
++
Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
Merci de ta réponse. C'est vrai que je n'avais pas pensé à changer les droits de mon programme sous Vista, mais même en mettant l'exécution en tant qu'Admin. ca ne marche pas.
Pour ce qui est des debug privileges, j'ai une petit fonction qui me le fait.
Sinon, j'utilise la méthode classique : VirtualAllocEx, WriteProcessMemory, CreateRemoteThread et VirtualFreeEx...
Ce qui est étrange encore une fois, c'est que j'arrive à charger ma DLL dans le processus, mais pas à utiliser les fonctions de celle ci, alors que j'utilise la même technique avec LoadLibrary et GetProcAddress. (uniquement sous Vista !)