当前位置:去回答>百科知识>writeprocessmemory是什么意思

writeprocessmemory是什么意思

2024-10-11 01:10:36 编辑:join 浏览量:546

writeprocessmemory是什么意思

首先其声明如下:

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, 实际应用时,填成实际值。

WriteProcessMemory此函数能写入某一进程的内存区域。入口区必须可以访问,否则操作将失败。

此函数能写入某一进程的内存区域(直接写入会出Access Violation错误,故需此函数)。

VC++声明

BOOL WriteProcessMemory(

HANDLE hProcess,

LPVOID lpBaseAddress,

LPVOID lpBuffer,

DWORD nSize,

LPDWORD lpNumberOfBytesWritten

);

参数:

hProcess

由OpenProcess返回的进程句柄。

如参数传数据为 INVALID_HANDLE_VALUE 【即-1】目标进程为自身进程

lpBaseAddress

要写的内存首地址

再写入之前,此函数将先检查目标地址是否可用,并能容纳待写入的数据。

lpBuffer

指向要写的数据的指针。

nSize

要写入的字节数。

返回值

非零值代表成功。

可用GetLastError获取更多的错误详细信息。

要求

操作系统版本: Windows CE 2.0及以上版本。

所在头文件: Winbase.h

链接库: Nk.lib

标签:writeprocessmemory

版权声明:文章由 去回答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.quhuida.com/article/296544.html
热门文章