此函数能写入某一进程的内存区域。入口区必须可以访问,否则操作将失败。

VC++声明

BOOL WriteProcessMemory(

HANDLE hProcess,

LPVOID lpBaseAddress,

LPVOID lpBuffer,

DWORD nSize,

LPDWORD lpNumberOfBytesWritten

);

参数:

hProcess

由OpenProcess返回的进程句柄。

如参数传数据为 INVALID_HANDLE_VALUE 【即-1】目标进程为自身进程

lpBaseAddress

要写的内存首地址

再写入之前,此函数将先检查目标地址是否可用,并能容纳待写入的数据。

lpBuffer

指向要写的数据的指针。

nSize

要写入的字节数。

返回值

非零值代表成功。

可用GetLastError获取更多的错误详细信息。

要求

操作系统版本: Windows CE 2.0及以上版本。

所在头文件: Winbase.h

链接库: Nk.lib

参见

OpenProcess| ReadProcessMemory


VB 声明


Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

参数:

hProcess , 进程的句柄

lpBaseAddress, 写入进程的位置

lpBuffer, 数据当前存放地址

nSize, 数据的长度

lpNumberOfBytesWritten,实际数据的长度

nSize以字节为单位,一个字节Byte等于8位

基本数据类型的长度参见基本数据类型