|
|
|
|
|
|
|
Windows内核调试
帖子发起人: Thomson 发起时间: 2009-03-23 19:29 下午 回复: 2
|
帖子排序:
|
|
|
|
2009-03-23, 19:29 下午
|
Thomson
注册: 2008-07-03
发 贴: 211
|
如何在内核断点里面让其在一个特定的进程break?
|
|
|
|
想在一个内核断点里面加一个条件,以使其在特定进程停下来,如何设置这个条件比较好呢.
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-03-23, 22:23 下午
|
Coding
注册: 2008-05-31
发 贴: 103
|
Re: 如何在内核断点里面让其在一个特定的进程break?
|
|
|
|
花了一个多小时试图从正面推导出得到当前的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
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-03-23, 23:45 下午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
Re: 如何在内核断点里面让其在一个特定的进程break?
|
|
|
|
在使用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.
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » Windows内核调试 » Re: 如何在内核断点里面让其在一个特定的进程break?
|
|
|
|
|
|