2 回答

TA貢獻1828條經(jīng)驗 獲得超3個贊
首先其聲明如下:
BOOL WriteProcessMemory(
HANDLE hProcess, // 進程的句柄,是用OpenProcess打開的
LPVOID lpBaseAddress, // 要寫入的起始地址
LPVOID lpBuffer, // 寫入的緩存區(qū)
DWORD nSize, // 要寫入緩存區(qū)的大小
LPDWORD lpNumberOfBytesWritten // 這個是返回實際寫入的字節(jié)。
);
如果你要改寫目標(biāo)進程的一段內(nèi)存,可以類似這樣
char *buffer="abc";
DWORD dwBytes=0;
WriteProcessMemory(hProcess, 0x00400000, buffer, 3, &dwBytes);
如果是整型的,就是
int value=3454354;
DWORD dwBytes=0;
WriteProcessMemory(hProcess, 0x00400000, &value, sizeof(value), &dwBytes);
其中的起始地址我是隨便寫的0x00400000, 實際應(yīng)用時,填成實際值。

TA貢獻1831條經(jīng)驗 獲得超10個贊
首先其聲明如下:
BOOL WriteProcessMemory(
HANDLE hProcess, // 進程的句柄,是用OpenProcess打開的
LPVOID lpBaseAddress, // 要寫入的起始地址
LPVOID lpBuffer, // 寫入的緩存區(qū)
DWORD nSize, // 要寫入緩存區(qū)的大小
LPDWORD lpNumberOfBytesWritten // 這個是返回實際寫入的字節(jié)。
);
如果你要改寫目標(biāo)進程的一段內(nèi)存,可以類似這樣
char *buffer="abc";
DWORD dwBytes=0;
WriteProcessMemory(hProcess, 0x00400000, buffer, 3, &dwBytes);
如果是整型的,就是
int value=3454354;
DWORD dwBytes=0;
WriteProcessMemory(hProcess, 0x00400000, &value, sizeof(value), &dwBytes);
其中的起始地址我是隨便寫的0x00400000, 實際應(yīng)用時,填成實際值。
- 2 回答
- 0 關(guān)注
- 453 瀏覽
添加回答
舉報