nlnknlnk
驱动牛犊
驱动牛犊
  • 注册日期2003-06-16
  • 最后登录2010-01-23
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望24点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1615回复:8

读当前进程和线程返回都是0代表什么?

楼主#
更多 发布于:2008-06-07 19:32
在驱动里想根据当前的进程来区别控制和过滤报文,为什么很多报文,例如迅雷Thunder的很多报文接收时,使用PsGetCurrentProcessId和PsGetCurrentThreadId读取的当前线程及进程全部为0,这个是什么原因?

在此发个贴请教,雁过留言,谢谢阿。
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-06-07 22:56
不懂,难道被HOOK了?
帮顶!
雁过拨毛!
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2008-06-08 02:51
如果你确认获得的的确是0,那么很可能被HOOK了。

你可以通过下面代码来当前线程:
PVOID ethread ;
__asm
{
  mov eax , dowrd ptr fs:[0x124]
  mov ethread  , eax
}
上面代码类似于PsGetCurrentThread()


看获得的是什么
驱动开发者 呵呵
nlnknlnk
驱动牛犊
驱动牛犊
  • 注册日期2003-06-16
  • 最后登录2010-01-23
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望24点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-06-08 08:57
多谢WQXNETQIQI,忘了说,现在我是在自己的HOOK函数里读取当前线程的,我HOOK的是TCP/IP协议的接收函数,难道跟这个有关系?
nlnknlnk
驱动牛犊
驱动牛犊
  • 注册日期2003-06-16
  • 最后登录2010-01-23
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望24点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-06-10 12:12
还没搞定,有没有标准答案?
nlnknlnk
驱动牛犊
驱动牛犊
  • 注册日期2003-06-16
  • 最后登录2010-01-23
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望24点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-07-01 12:01
有没有人研究过?
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2008-07-01 13:11
看你hook的位置,太下面的话,基本都是在system 或idle里了.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
nlnknlnk
驱动牛犊
驱动牛犊
  • 注册日期2003-06-16
  • 最后登录2010-01-23
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望24点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-07-02 10:39
明白,谢谢老大,但是是不是此时就得不到真正操作数据的进程ID了?
muliu92
驱动牛犊
驱动牛犊
  • 注册日期2006-03-14
  • 最后登录2020-12-28
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望120点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2008-07-07 21:23
发送数据时,tdi将数据扔给ndis对列就可以了。接收亦如此,所以在ndis里面获取真正的进程id是不准确的。
游客

返回顶部