内存操作的几个函数

在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 // 实际读入的子节数  
)

posted on 2021-06-04 15:53  TopCoder.NET  阅读(93)  评论(0编辑  收藏  举报