内存操作的几个函数

在2K或XP中要想写入数据到进程中需要用VirtualProtectEx将需要修改的地址段设为:PAGE_READWRITE;然后再用WriteProcessMemory写入数据或用ReadProcessMemory读取数据;

函数的形参如下:

BOOL VirtualProtectEx(  
 HANDLE hProcess, // 要修改内存的进程句柄  
 LPVOID lpAddress, // 要修改内存的起始地址  
 DWORD dwSize, // 修改内存的字节  
 DWORD flNewProtect, // 修改后的内存属性  
 PDWORD lpflOldProtect // 修改前的内存属性的地址  
)

BOOL WriteProcessMemory(  
 HANDLE hProcess, // 要写进程的句柄  
 LPVOID lpBaseAddress, // 写内存的起始地址  
 LPVOID lpBuffer, // 写入数据的地址  
 DWORD nSize, // 要写的字节数  
 LPDWORD lpNumberOfBytesWritten // 实际写入的子节数  
)

BOOL ReadProcessMemory(  
 HANDLE hProcess, // 要读进程的句柄  
 LPCVOID lpBaseAddress, // 读内存的起始地址  
 LPVOID lpBuffer, // 读入数据的地址  
 DWORD nSize, // 要读入的字节数  
 LPDWORD lpNumberOfBytesRead // 实际读入的子节数  
)

原文地址:https://www.cnblogs.com/topcoder/p/14849919.html