【发布时间】:2017-09-23 14:07:08
【问题描述】:
在 C++ 中,我想创建一个程序,它可以访问和写入任何物理内存地址,而不管该地址被什么使用,包括 Windows 内核模式程序。是否有可能创建这样的程序,可以写入任何内存地址,例如 0x00,而不受 Windows 操作系统内存权限限制?显然该程序不能是用户模式程序,所以如果我将程序提升为管理员,我可以这样做吗?还是我需要写一个驱动?
【问题讨论】:
-
“内存地址”是什么意思?进程特定的虚拟地址、系统范围的虚拟地址还是物理内存地址?
-
物理内存地址
-
设备驱动程序可以写入物理内存地址。但请注意,物理内存页面可能会转储到页面文件中,反之亦然,并且通常物理内存页面不会绑定到特定的应用程序/驱动程序。
-
顺便说一句,以管理员身份运行的用户模式程序仍然是用户模式程序。