內存操作的幾個函數
在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 // 實際讀入的子節數
)
浙公網安備 33010602011771號