当前位置: 代码迷 >> 汇编语言 >> Ring3无驱进入Ring0的方法(有关问题)
  详细解决方案

Ring3无驱进入Ring0的方法(有关问题)

热度:5384   发布时间:2013-02-26 00:00:00.0
Ring3无驱进入Ring0的方法(问题)

http://hi.baidu.com/queensuzy/blog/item/927ee8f9b88c965a242df278

下面就是虚拟地址转换物理地址了,这在Ring0中很简单,
直接调用MmGetPhysicalAddress 即可,但在Ring3中要
另想办法,还好系统直接将 0x80000000 – 0xa0000000 影射到物
理0地址开始的位置,所以可以写一个轻量级的GetPhysicalAddress来替代 


---------------------------------------------------

这句话是什么意思?哪位高手解释一下

------解决方案--------------------------------------------------------
VAddr >= 0x80000000 && VAddr < 0xa0000000
这一段是虚拟内存对象,指明了是内核的地址,R3下不能直接访问,但系统为这个虚拟了一个设备PhysicalMemory,但是Mm前缀的都是Native API,大多要在R0下调用,R3很难直接调用
物理地址0会调用中断,访问中断向量表的值(32位下我们叫中断描述符表,简称IDT),利用IDT当中的中断门可以进入R0,这也是一般无驱动进R0的方法,但是现在新的操作系统都不允许写物理内存了,所以这方法没戏了
------解决方案--------------------------------------------------------
http://blog.csdn.net/mydo/archive/2007/01/14/1482893.aspx