首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2012-04-12 
Ring3无驱进入Ring0的方法(问题)http://hi.baidu.com/queensuzy/blog/item/927ee8f9b88c965a242df278.html

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

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

下面就是虚拟地址转换物理地址了,这在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

热点排行