阅读:1248回复:0
在2k,xp,2k3中读取特定虚拟地址系统占用率飙升的问题。
代码:
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地址,均无此现象。 |
|