找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5162|回复: 2

线程创建回调中如何阻止线程创建?

[复制链接]

4

主题

145

回帖

0

精华

金牌会员

积分
1189
发表于 2016-12-1 21:24:56 | 显示全部楼层 |阅读模式
唯一想到的方法是DKOM,将进程线程设为系统线程.
PsSetCreateThreadNotifyRoutine是执行在创建者上下文的,此时获取线程信息很可能失败.
然后看了PsSetCreateThreadNotifyRoutineEx 是执行在新线程的上下文,这里就可以得到线程信息,但不幸的 这个Ex函数在Win10上才能使用.
那么有没有一种在x64下不hook实现阻止线程创建的方法呢?

856

主题

2630

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36108
发表于 2016-12-2 17:31:41 | 显示全部楼层
创建一个workitem,拿到TID后结束之。直接阻止貌似是不可能的。

仔细看了一下MSDN,新版函数确实爽:
With PsSetCreateThreadNotifyRoutine, the callback is executed on the creator thread. With PsSetCreateThreadNotifyRoutineEx, the callback is executed on the newly created thread.
要阻止线程创建,只要调用一下ZwTerminateThread(ZwCurrentThread())即可。

1

主题

72

回帖

0

精华

铜牌会员

积分
260
发表于 2021-1-19 17:21:05 | 显示全部楼层
Tesla.Angela 发表于 2016-12-2 17:31
创建一个workitem,拿到TID后结束之。直接阻止貌似是不可能的。

仔细看了一下MSDN,新版函数确实爽:要阻 ...

也可以直接插个kernel APC
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表