首页
论坛
课程
招聘
[求助]监控进程退出 判断是自己退出 还是被其他进程终结问题
2019-1-19 12:43 2598

[求助]监控进程退出 判断是自己退出 还是被其他进程终结问题

2019-1-19 12:43
2598
Hello  各位大佬,大神,周末好。
进程怎么退出 可以 Hook   ZwTerminateProcess 及 设置PsSetCreateProcessNotifyRoutine 回调 来监控进程退出 及怎么退出
但我不想 Hook    ZwTerminateProcess  只想设置PsSetCreateProcessNotifyRoutine 回调 来监控进程。

通过查看W2K 源码 :
NtTerminateProcess --> PspTerminateThreadByPointer-->KeInsertQueueApc--->PspExitThread-->PspExitProcess-->调用PsSetCreateProcessNotifyRoutine设置的回调


问题的点是,终结进程是通过插入apc到被终结的进程里,被终结的进程执行退出操作,被终结进程是在自己环境里退出的。所以在回调函数的环境里无法获取到,进程是怎么被终结的。

不过这里有两个点。
一:
      终结进程 引用了 被终结进程的 EPROCESS  ETHREAD的对象。是否可以通过对象去找终结进程。
二:
     是否可以通过apc去找,终结进程。
或者还有其他的方法去找,终结进程。

望大神们指点迷津。
 

第五届安全开发者峰会(SDC 2021)10月23日上海召开!限时2.5折门票(含自助午餐1份)

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 10437
活跃值: 活跃值 (4128)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
hzqst 活跃值 3 2019-1-19 14:53
2
0
hook KeInsertQueueApc
雪    币: 905
活跃值: 活跃值 (54)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
花弄影h 活跃值 2019-1-19 16:16
3
0
哥 还不如 hook ZwTerminateProcess 简单  有没有查询的思路  
雪    币: 10437
活跃值: 活跃值 (4128)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
hzqst 活跃值 3 2019-1-19 17:26
4
0
花弄影h 哥 还不如 hook ZwTerminateProcess 简单 有没有查询的思路
没有
雪    币: 4311
活跃值: 活跃值 (764)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
blindtiger 活跃值 1 2019-1-20 16:36
5
0
NtTerminateProcess  需要打开进程 并拥有 PROCESS_TERMINATE权限 在Object callback 拦截
雪    币: 905
活跃值: 活跃值 (54)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
花弄影h 活跃值 2019-1-21 03:20
6
0
小艾 NtTerminateProcess 需要打开进程 并拥有 PROCESS_TERMINATE权限 在Object callback 拦截
这并不准确  最合适的  还是  hook keinsertapc  看了一下  对象结构  是有保存  引用这个对象的  对象指针  能没有找到接口函数去获取
游客
登录 | 注册 方可回帖
返回