Re: 如何在内核断点里面让其在一个特定的进程break?
Windows内核调试
如何在内核断点里面让其在一个特定的进程break?
Thomson
2009-03-23, 19:29 下午
想在一个内核断点里面加一个条件,以使其在特定进程停下来,如何设置这个条件比较好呢.
Re: 如何在内核断点里面让其在一个特定的进程break?
Coding
2009-03-23, 22:23 下午
花了一个多小时试图从正面推导出得到当前的process id,未果,基本功还是不扎实呀。
不过倒是想到了另外一个方法解决你这个问题。
kd> uf nt!PsGetCurrentProcessId
nt!PsGetCurrentProcessId:
804eec53 64a124010000 mov eax,dword ptr fs:[00000124h]
804eec59 8b80ec010000 mov eax,dword ptr [eax+1ECh]
804eec5f c3 ret
后发现Current Process id存在固定的地方,做了个验证看看,的确可以找到当前的process id是0194
kd> dd fs:[00000124h] L1
0030:00000124 81611da8
kd> dd 81611da8+1EC L1
81611f94 00000194
kd> .process
Implicit process is now 815a8268
kd> !process 815a8268 0
PROCESS 815a8268 SessionId: 0 Cid: 0194 Peb: 7ffdf000 ParentCid: 06f8
DirBase: 0ebee000 ObjectTable: e15dba00 HandleCount: 58.
Image: taskmgr.exe
Re: 如何在内核断点里面让其在一个特定的进程break?
格蠹老雷
2009-03-23, 23:45 下午
在使用ba和bp设置断点时通过/p开关指定进程:
/p EProcess
(Kernel-mode only) Specifies a process that is associated with this breakpoint. EProcess should be the actual address of the EPROCESS structure, not the PID. The breakpoint is triggered only if it is encountered in the context of this process.