flying2008
驱动牛犊
驱动牛犊
  • 注册日期2005-12-15
  • 最后登录2010-04-02
  • 粉丝0
  • 关注0
  • 积分695分
  • 威望85点
  • 贡献值0点
  • 好评度67点
  • 原创分0分
  • 专家分0分
阅读:2504回复:6

hook ExitThread函数

楼主#
更多 发布于:2007-07-12 22:14
最近在写一个监控系统中某几个进程的线程退出程序,经研究紧紧监控ntterminatethread程序是不够的,故需要监控exitthread程序,但该程序在内核中没有具体有意义的对应函数,在用户层inline hook但用户内存受到保护,无法下手。
请高手指点一下,这个问题该如何解决,敬请期待:)
flying2008
驱动牛犊
驱动牛犊
  • 注册日期2005-12-15
  • 最后登录2010-04-02
  • 粉丝0
  • 关注0
  • 积分695分
  • 威望85点
  • 贡献值0点
  • 好评度67点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-07-16 09:32
问题还是没解决,高手们该出手了:)
GNiDiA
驱动小牛
驱动小牛
  • 注册日期2006-10-11
  • 最后登录2017-10-09
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望145点
  • 贡献值0点
  • 好评度124点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-07-16 11:12
ExitThread最终调用的就是NtTerminateThread

kernel32::ExitThread->ntdll::NtTerminateThread->ntkrnl::NtTerminateThread
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
地板#
发布于:2007-07-16 11:51
hook PspExitThread或PspTerminateThreadByPointer
应该够底层了~
驱动开发者 呵呵
flying2008
驱动牛犊
驱动牛犊
  • 注册日期2005-12-15
  • 最后登录2010-04-02
  • 粉丝0
  • 关注0
  • 积分695分
  • 威望85点
  • 贡献值0点
  • 好评度67点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-07-17 09:54
引用第2楼GNiDiA于2007-07-16 11:12发表的  :
ExitThread最终调用的就是NtTerminateThread

kernel32::ExitThread->ntdll::NtTerminateThread->ntkrnl::NtTerminateThread

非常感谢你的回答,但是2000不是这样的:)
flying2008
驱动牛犊
驱动牛犊
  • 注册日期2005-12-15
  • 最后登录2010-04-02
  • 粉丝0
  • 关注0
  • 积分695分
  • 威望85点
  • 贡献值0点
  • 好评度67点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-07-17 10:07
引用第3楼WQXNETQIQI于2007-07-16 11:51发表的  :
hook PspExitThread或PspTerminateThreadByPointer
应该够底层了~


可是在2000中exitthread没有调用PspExitThread、PspTerminateThreadByPointer函数?
GNiDiA
驱动小牛
驱动小牛
  • 注册日期2006-10-11
  • 最后登录2017-10-09
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望145点
  • 贡献值0点
  • 好评度124点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2007-07-17 12:11
最后一个线程的ExitThread会直接调用ExitProcess,不再向下调用NtTerminateThread了

XP和2000没这么大差别吧?正好我装了2000 SERVER SP4,有空要看看了。
游客

返回顶部