hopy10
驱动牛犊
驱动牛犊
  • 注册日期2010-01-07
  • 最后登录2010-01-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1248回复:0

在2k,xp,2k3中读取特定虚拟地址系统占用率飙升的问题。

楼主#
更多 发布于:2010-01-07 10:52
代码:
bool DDKAPI HyFixBug(void)
{
  bool bRet = false;
  DWORD *DeadAddr = (DWORD*)0xc0282000; //0xc0282000
   DWORD dwVal = 0;
    
  __try
  {
    dwVal = *DeadAddr;  // wow!
    bRet = true;
  }
  __except(EXCEPTION_EXECUTE_HANDLER)
  {
    DbgPrint("%s Rise Exception!\n",__func__);
  }
  return bRet;
}


在 2k(sp4,非PAE模式)下地址读0xc0282000地址内容时,cpu内核占用率飙升到
100%,但系统并没有彻底死机,只是变得很慢。加int 3用softice单步到该句时
softice挂起,但用ctrl+D可以恢复。注意0xc0282000正好是虚拟地址
0xa0800000的PTE虚拟地址,不光这一个地址,访问0xa0800000之后的一段虚拟
地址的PTE都会有如上现象。

在xp(sp3 PAE模式)和2k3(sp1 PAE模式)下访问0xbb000000开始虚拟地址的PTE
时会发生同样现象。

访问其他地址的PTE地址,均无此现象。
游客

返回顶部