【发布时间】:2016-07-29 23:22:20
【问题描述】:
基本上我正在寻找一个可以为内核模式做的函数,就像VirtualProtect 为用户模式做的那样。
我正在使用以下简化代码示例的逻辑分配内存。
PMDL mdl = MmAllocatePagesForMdl
(
LowAddress,
HighAddress,
SkipAddress,
size
);
ULONG flags = NormalPagePriority | MdlMappingNoExecute | MdlMappingNoWrite;
PVOID ptr = MmGetSystemAddressForMdlSafe
(
mdl,
flags
);
MdlMappingNoExecute 和 MdlMappingNoWrite 标志仅对 Win8+ 有效。
此外,仅使用 MmGetSystemAddressForMdlSafe 我无法为内存区域分配例如 NoAccess 保护。
我可以使用任何其他或替代的 API 来修改分配内存的页面保护吗?
黑客也可以这样做,因为目前此功能不会在生产代码中使用。
【问题讨论】:
标签: memory-management windows-kernel