Re: Q:请问如何对kifastcallentry下断点,并追踪到其进入kisystemservice的过程?

Windows内核

Q:请问如何对kifastcallentry下断点,并追踪到其进入kisystemservice的过程?


merry 2009-03-28, 20:21 下午

一开始,我用Windbg通过attach'记事本'程序,在kifastcallentry的入口地址(80865930)下断点, 想在'记事本'程序系统调用时跟踪到内核调用,结果得到如下错误提示:
0:001> bp 80865930
0:001> bl
 0 eu             0001 (0001) (kifastcallentry)
 1 e 80865930     0001 (0001)  0:****
0:001> g
Unable to insert breakpoint 1 at 80865930, Win32 error 0n998
    "内存分配访问无效。"

于是,换一个方法,使用内核调试并下断点,想试一试,又得到如下错误提示:
kkd> bp 80865930
     ^ Operation not supported by current debuggee error in 'bp 80865930'

查了一下windbg帮助,这些命令可以在内核调试中使用,但是该如何对kifastcallentry下断点,并追踪到进入kisystemservice的过程,我不太清楚.

Q:请问如何对kifastcallentry下断点,并追踪到其进入kisystemservice的过程?谢谢!

Re: Q:请问如何对kifastcallentry下断点,并追踪到其进入kisystemservice的过程?


MJ0011 2009-03-28, 22:44 下午
双机调试或者使用softice

Re: Q:请问如何对kifastcallentry下断点,并追踪到其进入kisystemservice的过程?


merry 2009-04-09, 09:06 上午
Host OS:Winxp sp2
Ghost OS:Winxp sp2

我使用PC+vmware双机调试的方式准备对虚拟机中OS的KiFastCallEntry函数下断点,但发现在windbg连接Ghost后,不能找到KiFastCallEntry函数(如下),但是在Host做local debug时,却有nt!KiFastCallEntry。

kd> x nt!ki*
804fe228 nt!KiDeliverApc ()
804fe574 nt!KiIpiServiceRoutine ()
8053d050 nt!KiAcquireSpinLock ()
8053d060 nt!KiReleaseSpinLock ()
8054129c nt!KiCoprocessorError ()
80541450 nt!Kii386SpinOnSpinLock ()
80541cb2 nt!KiUnexpectedInterrupt ()
80541dc0 nt!KiDispatchInterrupt ()
8054caf8 nt!KiEnableTimerWatchdog ()
80553f20 nt!KiBugCheckData ()


Q:请问这是什么原因?谢谢!

Re: Q:请问如何对kifastcallentry下断点,并追踪到其进入kisystemservice的过程?


王宇 2009-04-09, 10:50 上午
1. 是符号有问题

2. 其他的解决方法就是直接断那个地址

0: kd> rdmsr 176
msr[176] = 00000000`80541510

0: kd> bp 00000000`80541510

0: kd> bl
0 e 80541510 0001 (0001) nt!KiFastCallEntry

Powered by Community Server Powered by CnForums.Net