【winapi】VirtualProtect 函数
概述:VirtualProtect 函数的说明和使用
说明
VirtualProtect
函数主要用于改变内存地址所在页的页属性。
1 |
|
各参数的意义为:
lpAddress,要改变属性的内存起始地址。
dwSize,要改变属性的内存区域大小。
flNewProtect,内存新的属性类型,设置为PAGE_EXECUTE_READWRITE(0x40)时该内存页为可读可写可执行。
pflOldProtect,内存原始属性类型保存地址。
修改内存属性成功时函数返回非0,修改失败时返回0。
如果我们能够按照如下参数布置好栈帧的话就可以将shellcode所在内存区域设置为可执行模式。
示例
如下所示为 Hook 虚函数,并使其调用自己的函数。在改写调用之前使用了 VirtualProtect
函数对相关内存区域的属性进行了修改。
1 |
|
【winapi】VirtualProtect 函数
https://hodlyounger.github.io/2023/10/27/A_OS/Windows/API/【winapi】VirtualProtect/