阅读:1527回复:6
什么操作会引起不确定进程 CPU 100%?
我写了个驱动,配合 DLL 恢复 SSDT 和 SSDT Shadow。
SSDT 的地址通过 90210 的改进方法获取。 SSDT Shadow 地址通过分析 PE 格式偏移获取。 最近发现在双核的机器上,只要调用了驱动,即使还原了表,也会导致系统当机,总是有两个进程分别占掉 50% 的 CPU,杀掉还有别的进程顶上 ——; |
|
|
沙发#
发布于:2007-07-03 10:05
在同事的单核 CPU 也存在这种情况,总有一个进程 CPU 100%,,,,他的是克隆版的windows XP。。
|
|
|
板凳#
发布于:2007-07-03 13:37
用调试工具看一看到底在哪儿死循环
|
|
地板#
发布于:2007-07-03 15:34
偶就是不太会调试工具,,而且 softICE 经常装了用不了,,,汗~~
用什么调试工具好呢? |
|
|
地下室#
发布于:2007-07-04 11:05
有一次恰好一个进程死,双核还有 50% 的 CPU可以用,发现 csrss.exe 的一个线程死在 winsrv.dll + 0x1b84 的地方。。。。
|
|
|
5楼#
发布于:2007-07-04 19:54
估计是处理做的有问题~
|
|
|
6楼#
发布于:2007-07-05 10:15
V 大好!
以前版本的驱动没有这个 BUG,出错版本的改变有: 1,在 DLL 中通过改进的 90210 方法获取 SSDT 原始地址。 2,直接调用了 SSDT 原始地址的整套注册表函数。(以前版本通过系统工作者线程调用) 3,各 SSDT 表的备份使用了动态分配的 NonPagedPool 内存。(以前版本静态数组) ![]() |
|
|