2017-09-23 84 views
1

在C++中,我想创建一个程序,该程序可以访问和写入任何物理内存地址,而不管正在使用哪个地址,包括Windows内核模式程序。是否有可能创建这样的程序,可以写入任何内存地址,如0x00,没有Windows操作系统内存权限限制?很明显,该程序不能是一个用户模式程序,所以如果我将程序提升为管理员,我能做到这一点吗?或者我需要写一个驱动程序?是否有可能在Windows中写入任何内存地址

+0

你是什么意思的“内存地址”?特定于进程的虚拟地址,系统范围的虚拟地址或物理内存地址? – valdo

+0

物理内存地址 – user4757174

+0

设备驱动程序可能会写入物理内存地址。但请注意,物理内存页面可能会转储到页面文件中,反之亦然,并且通常物理内存页面不会绑定到特定的应用程序/驱动程序。 – valdo

回答

2

你需要写驱动程序。即使以管理员身份运行,常规程序也不能写入任意内存地址。事实上,他们甚至不能访问任意的物理地址。

+0

内核模式下的驱动程序是否可以覆盖对Windows至关重要的其他内核模式程序的物理内存? – user4757174

+2

是的,如果你设法进入内核模式,你可以用任何你喜欢的方式来连接系统。 –

相关问题