《Undocumented Windows 2000 Secrets》翻译 --- 第四章(5)[28]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 kendiv 的 blog

列表4-19.  获取idt门的值

 

ioctl函数spy_io_physical

spy_io_physical函数很简单,它完全依赖于ntoskrnl.exe导出的mmgetphysicaladdress()函数。该ioctl函数通过简单的调用spyinputpointer()(参见列表4-10)来获取需要转换的线性地址,然后让mmgetphysicaladdress()查找对应的物理地址,最后将结果作为physical_address结构返回给调用者。注意,physical_address是一个64位的large_integer。在大多数i386系统上,其高32位总是为0。不过,若系统启用了物理地址扩展(physical address extension, pae),并且安装的内存大于4gb,这些位可能就是非0值了。

 

mmgetphysicaladdress()使用起始于线性地址0xc0000000pte数组,来进行物理地址的查找。其基本的工作机制如下:

本文关键:《Undocumented Windows 2000 Secrets》翻译 --- 第四章(5)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top