首页
社区
课程
招聘
[讨论]DPC获取线程号
发表于: 2013-9-24 14:43 4770

[讨论]DPC获取线程号

2013-9-24 14:43
4770
APC是属于某个线程的,具有线程号。而DPC是不属于任何线程的。
那么当APC例程在执行PsGetCurrentThreadId的时候,应该是返回该线程ID,
那当DPC例程在执行PsGetCurrentThreadId的时候,返回值是什么呢?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 541
活跃值: (654)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
2
执行DPC的线程ID,由于DPC不属于某个线程,所以获取的线程ID不是固定的
2013-9-24 15:50
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哦,dpc返回线程号是不固定的啊。我原来以为,如果dpc返回为0,或者0xffffffff,那就可以判断现在是在执行dpc例程。比如我原来设计是这样的,我hook磁盘irp操作,那么任何现成都可能发出磁盘读写irp,dpc也可能发出磁盘irp,所有的irp都要执行到我hook的代码处,我在此处要判断,这个irp是普通线程发出来的,还是dpc发出来的?我本来以为PsGetCurrentThreadId可以返回一个值,表明是dpc发出来的irp,看来这样行不通啊。那怎样判断当前是dpc发出irp执行到我的hook代码处了呢?
2013-9-24 16:19
0
游客
登录 | 注册 方可回帖
返回
//