2 回答
TA贡献1828条经验 获得超3个赞
首先其声明如下:
BOOL WriteProcessMemory(
HANDLE hProcess, // 进程的句柄,是用OpenProcess打开的
LPVOID lpBaseAddress, // 要写入的起始地址
LPVOID lpBuffer, // 写入的缓存区
DWORD nSize, // 要写入缓存区的大小
LPDWORD lpNumberOfBytesWritten // 这个是返回实际写入的字节。
);
如果你要改写目标进程的一段内存,可以类似这样
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, 实际应用时,填成实际值。
TA贡献1831条经验 获得超10个赞
首先其声明如下:
BOOL WriteProcessMemory(
HANDLE hProcess, // 进程的句柄,是用OpenProcess打开的
LPVOID lpBaseAddress, // 要写入的起始地址
LPVOID lpBuffer, // 写入的缓存区
DWORD nSize, // 要写入缓存区的大小
LPDWORD lpNumberOfBytesWritten // 这个是返回实际写入的字节。
);
如果你要改写目标进程的一段内存,可以类似这样
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, 实际应用时,填成实际值。
- 2 回答
- 0 关注
- 415 浏览
添加回答
举报