指定窗口修改内存保护属性 - VirtualProtectEx
函数简介
修改指定的内存保护属性。
接口名称
VirtualProtectEx
DLL调用
int VirtualProtectEx(long instance, long hwnd, long addr, int size, int newProtect, int* oldProtect);
参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| instance | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
| hwnd | 长整数型 | 窗口句柄或进程ID |
| addr | 长整数型 | 要修改的内存地址 |
| size | 整数型 | 需要修改的内存大小 |
| newProtect | 整数型 | 内存类型:0x10 PAGE_EXECUTE 可执行,0x20 PAGE_EXECUTE_READ 可读可执行,0x40 PAGE_READWRITE 可读可写可执行,0x80 PAGE_EXECUTE_WRITECOPY |
| oldProtect | 整数型指针 | 返回修改前的保护属性 |
示例
C++
long instance = CreateCOLAPlugInterFace();
// hwnd 为目标窗口句柄
// 将指定内存区域修改为可读写可执行
int oldProtect = 0;
int ret = VirtualProtectEx(instance, hwnd, 0x12345678, 4096, 0x40, &oldProtect);
printf("修改结果: %d, 原保护属性: 0x%X\n", ret, oldProtect);
Python
# 待补充
返回值
1 成功,0 失败。
