首页
社区
课程
招聘
[求助]Win7 X64 及以上版本的任务管理器结束任务原理及方法
发表于: 2018-1-23 14:16 4472

[求助]Win7 X64 及以上版本的任务管理器结束任务原理及方法

2018-1-23 14:16
4472
 都说任务管理器的结束任务是通过调用EndTask,来结束任务的;于是,一时无聊,尝试着HOOK EndTask,结果HOOK成功,但是出现了新问题:
 1.在Win7 32位系统下,HOOK EndTask后,能拦截到结束任务的操作,功能实现成功。
 2.在Win 7 64位系统下, HOOK EndTask ,HOOK成功后,但是无法拦截结束任务的操作,请问是有什么地方出问题了么?
 3.另外发现,WIN8及以上版本的结束任务似乎又发生了变化,请问他们的结束任务原理又是怎么样的?

通过IDA ,发现win7 x64版本中也有EndTask,说明结束任务也使用了此函数,但是HOOK后为啥无效?另外,下图是通过PCHunter64检查到的HOOK信息,HOOK是正常的,但是在64位下,不生效:

PS:是任务管理器的结束任务操作,不是结束进程(另外win8及以上版本,貌似都只有结束任务的操作,他们的原理又是啥?)

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
64位系统下,任务管理器进程也是64位的
64位hook跟32位不一样,指令集也不一样
2018-1-23 17:01
0
雪    币: 212
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我能确定编译的也是64位(64位DLL,64位exe),因为HOOK  OpenProcess已经生效
2018-1-23 17:37
0
雪    币: 212
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
随便跟了一下任务管理器的代码,发现“结束任务”是通过SendMessageTimeoutW发送一个WM_CLOSE去关闭的,没用EndTask这个API。
2018-1-23 17:50
0
雪    币: 181
活跃值: (621)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
发现win7  x64版本中也有EndTask,说明结束任务也使用了此函数      不知道你这个逻辑是  怎么来的,而且你自己后面也说了,“但是HOOK后为啥无效”,那就说明没有用到此函数啊
2018-1-23 19:12
0
雪    币: 212
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
jhjzero 随便跟了一下任务管理器的代码,发现“结束任务”是通过SendMessageTimeoutW发送一个WM_CLOSE去关闭的,没用EndTask这个API。
5楼的正解,结束任务是使用SendMessageTimeoutW发送WM_CLOSE消息,并设定超时时间为500ms,超过 了500ms才走EndTask。
六楼的兄弟,会走EndTask,走他的前提是超过默认时间500ms。
请问五楼的兄弟,对于Win7以上的系统,出现如下图情况(有三角,点开会显示子项,点击子项,结束任务,貌似不通过 SendMessageTimeoutW ),结束任务是什么原理?
2018-1-24 09:32
0
游客
登录 | 注册 方可回帖
返回
//