如何在Windows中定义可执行内存块?

时间:2013-05-21 18:53:26

标签: c++ winapi memory memory-management window

我知道Linux支持mmap系统命令,因为它能够定义可执行内存块。你如何在Windows中做同样的事情?我想有一些窗口等效功能可以做同样的事情,也许?

2 个答案:

答案 0 :(得分:7)

致电CreateFileMappingVirtualProtectVirtualAlloc,通过其中一个PAGE_EXECUTE_XXX保护标记。 mmap函数用于文件映射,因此CreateFileMapping是最接近的Windows模拟。

答案 1 :(得分:4)

Google, one of the first hits. - 使用VirtualAlloc功能,保护标记为PAGE_EXECUTEPAGE_EXECUTE_READPAGE_EXECUTE_READWRITEPAGE_EXECUTE_WRITECOPY之一。< / p>

或者,使用VirtualProtect()更改已存在的内存区域的保护。