在驱动里想根据当前的进程来区别控制和过滤报文,为什么很多报文,例如迅雷Thunder的很多报文接收时,使用PsGetCurrentProcessId和PsGetCurrentThreadId读取的当前线程及进程全部为0,这个是什么原因?在此发个贴请教,雁过留言,谢谢阿。
回复(8) 2008-06-07 19:32 来自版块 - 内核编程
表情
muliu92发送数据时,tdi将数据扔给ndis对列就可以了。接收亦如此,所以在ndis里面获取真正的进程id是不准确的。(2008-07-07 21:23)
nlnknlnk明白,谢谢老大,但是是不是此时就得不到真正操作数据的进程ID了?(2008-07-02 10:39)
wowocock看你hook的位置,太下面的话,基本都是在system 或idle里了.(2008-07-01 13:11)
nlnknlnk有没有人研究过?(2008-07-01 12:01)
nlnknlnk还没搞定,有没有标准答案?(2008-06-10 12:12)
nlnknlnk多谢WQXNETQIQI,忘了说,现在我是在自己的HOOK函数里读取当前线程的,我HOOK的是TCP/IP协议的接收函数,难道跟这个有关系?(2008-06-08 08:57)
WQXNETQIQI如果你确认获得的的确是0,那么很可能被HOOK了。 你可以通过下面代码来当前线程: PVOID ethread ; __asm { mov eax , dowrd ptr fs:[0x124] mov ethread , eax } 上面代码类似于PsGetCurr...(2008-06-08 02:51)
eleqi不懂,难道被HOOK了? 帮顶! 雁过拨毛!(2008-06-07 22:56)

返回顶部