Retour <-- Vers Partie 1		  			  	Vers Partie 2 -->Retour



WriteProcessMemory (Win32)

BOOL WriteProcessMemory (hProcess, lpBaseAddress, lpBuffer, cbWrite, lpNumberOfBytesWritten) HANDLE hProcess; /* process dans lequel on écrit en mémoire */ LPVOID lpBaseAddress; /* addr où on commence à écrire */ LPVOID lpBuffer; /* buffer pour placer nos données à écrire */ DWORD cbWrite; /* nombre total d'octets à écrire */ LPDWORD lpNumberOfBytesWritten; /* nombre d'octets réellement écrits */ La fonction WriteProcessMemory sert à écrire dans la mémoire d'un process cible. Paramètre Description hProcess Est l'handle d'un process déjà ouvert pour qu'on puisse écrire dans sa mémoire. Cet handle a dû être obtenu avec PROCESS_VM_READ pour accèder au process. lpBaseAddress Représente l'adresse de base (00400000) du process cible dans lequel on souhaite ècrire. Avant que n'importe quel transfert de données n'arrive, le système vérifie que toutes les données dans l'adresse de base et la taille indiquée sont accessibles pour un accès en écriture. Si c'est le cas, on obtient bien les retours de fonction. Sinon, la fonction échoue. lpBuffer Est l'adresse du buffer où on a placé les données qui vont êtres fournit lors de l'écriture dans le process cible. cbWrite Représente le nombre d'octets à écrire dans le process cible. lpNumberOfBytesWritten Un paramètre facultatif, qui si il est spécifié reçoit le nombre réel d'octets transférés dans le process cible. Il peut être différent de la valeur de cbWrite dans le cas où on tombe sur de données inaccessibles en écriture. Si ça arrive, la fonction renvoie un False, et GetLastError retourne une "courte information" à propos de l'indicateur d'erreur. Retours La valeur de retour est TRUE si la fonction est couronnée de succès, ou False si une erreur s'est produite. Employez la fonction GetLastError pour obtenir l'information à propos de l'erreur étendue. Commentaires Cette fonction copie les données du buffer apparenant à votre process actuel vers une zone d'adresses appartenant à un process cible. N'importe quel process ayant un handle avec l'accès PROCESS_VM_WRITTEN, peut être réécrit en appelant la fonction WriteProcessMemory. Le process dans lequel on souhaite écrire des données ne doit pas être en train de se faire débugguer par un autre programme. Voir Aussi ReadProcessMemory Retour <-- Vers Partie 1 Vers Partie 2 -->Retour