一、VirtualProtect
这个函数可以修改缓冲区的页面属性,传入 PAGE_EXECUTE_READWRITE 让缓冲区可执行。
BOOL VirtualProtect(
LPVOID lpAddress,
SIZE_T dwSize,
DWORD flNewProtect,
PDWORD lpflOldProtect
);
二、SetProcessDEPPolicy
这个函数可以在运行时修改进程的DEP属性。
BOOL SetProcessDEPPolicy(
DWORD dwFlags
);
三、修改项目属性
可以在项目链接属性中关闭DEP。这种方式的局限性是,当计算机设置了 AlwaysOn 的DEP配置时,这个做法就失效了。
四、修改系统策略
如果你可以控制执行程序的计算机,那么可以修改DEP策略:
bcdedit /set nx AlwaysOn
有这四种策略: