Api Win32 : CreateRemoteThread - C - Programmation
MarshPosté le 06-08-2005 à 16:42:29
Salut à tous,
J'ai un petit problème avec mon programme qui injecte un Thread à un processus ... En fait ça marche parfaitement bien lorsque c'est sur un programme ordinaire que j'injecte ma routine, comme par exemple mspaint.exe, ou n'importe quel autre exécutable.
Par contre, dès que c'est un exécutable natif de Windows XP, comme explorer.exe ou winlogon.exe ça plante ... Je le sais grâce au WaitForSingleObject() après le CreateRemoteThread() qui me dit que ya timeout, mais aussi car ya tout qui freeze !
Tout le monde va me dire : "T'as les privilèges ?" ... Ouais, je les ai les pirivilèges avec LookupPrivilegeValue(), AdjustTokenPrivileges() et tout le box ... Et ça marche très bien, j'ai vérifié avec PrivilegeCheck() !
J'ai aussi pensé que c'était la routine que j'injectait qui faisait foirer le tout, mais non, puisque je teste pour l'instant avec qu'une MessageBox(), et comme je l'ai dit avant : avec mspaint.exe, ça marche !
Voilà le bout de code nécessaire :
Code :
// [...]
// Déclaration des fonctions
// [...]
int injection(HANDLE hProc,char *DLL )
{
char *AllocMem;
LPTHREAD_START_ROUTINE inject;
int Size = strlen(DLL)+1;
// On réserve un espace mémoire dans la mémoire du processus
Marsh Posté le 06-08-2005 à 16:42:29
Salut à tous,
J'ai un petit problème avec mon programme qui injecte un Thread à un processus ... En fait ça marche parfaitement bien lorsque c'est sur un programme ordinaire que j'injecte ma routine, comme par exemple mspaint.exe, ou n'importe quel autre exécutable.
Par contre, dès que c'est un exécutable natif de Windows XP, comme explorer.exe ou winlogon.exe ça plante ... Je le sais grâce au WaitForSingleObject() après le CreateRemoteThread() qui me dit que ya timeout, mais aussi car ya tout qui freeze !
Tout le monde va me dire : "T'as les privilèges ?" ... Ouais, je les ai les pirivilèges avec LookupPrivilegeValue(), AdjustTokenPrivileges() et tout le box ... Et ça marche très bien, j'ai vérifié avec PrivilegeCheck() !
J'ai aussi pensé que c'était la routine que j'injectait qui faisait foirer le tout, mais non, puisque je teste pour l'instant avec qu'une MessageBox(), et comme je l'ai dit avant : avec mspaint.exe, ça marche !
Voilà le bout de code nécessaire :
Merci et @+,
Deimos