MorbhAck
Messages postés127Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 5 août 2007
-
20 août 2006 à 20:56
wxccxw
Messages postés755Date d'inscriptionsamedi 15 mai 2004StatutMembreDernière intervention30 janvier 2011
-
21 août 2006 à 00:41
Hello World !
J'ai un ptit problème avec la fonction WriteProcessMemory().
mon code est le suivant :
HWND Wnd; // Hwnd de notre fenêtre
LPDWORD PID; // Id du processus
DWORD Proc; // Id du thread
HANDLE Hproc; // Handle du processus
DWORD Addr = 0x0000000 ; // Addresse mémoire trouvée
DWORD MWritte;
BYTE PATCH[] = "\x90\x90\x90\x90"; // Notre patch (des NOP)
est inutile car MWritte contien le nom de Bits ecrite si sa marche
donc if(MWritte!=4) est plus correct.
sinon le system de recuperer le handle par le nom de la fenetre est perimee, utilise le nom de l'exe, tu fais un Enum Process jusqu'a ce que sa soit egale a mon prog.exe.
deplus BYTE Patch devrait mieux etre BYTE Patch[4] = .....
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 20 août 2006 à 21:36
GetWindowThreadProcessId(Wnd,(LPDWORD) &PID);
GetWindowThreadProcessId demande simple DWORD en second paramètre pour stocker le PID c'est juste qu'il lui faut sont adresse. Donc il faut faire comme suit:
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 20 août 2006 à 21:39
En réalité, ce qu'il faut en second paramètre de GetWindowThreadProcessId c'est une adresse. Faire &PID va donner l'adresse de PID et donc, la fonction stockera la valeur à la location du second paramètre.