登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 10|回复: 0

Windows内核中进程创建通知回调PsSetCreateProcessNotifyRoutineEx的防御避坑

[复制链接]

16

主题

8

回帖

35

积分

新手上路

积分
35
发表于 昨天 15:41 | 显示全部楼层 |阅读模式
在开发安全驱动或反作弊模块时,PsSetCreateProcessNotifyRoutineEx 是监控子进程生成的标准手段。但在实际部署中容易遇到以下细节问题:

1. 驱动签名要求:调用 Ex 版回调必须在链接时指定 /INTEGRITYCHECK,并且二进制文件需要有经过验证的WHQL或交叉签名,否则注册时会直接返回 STATUS_ACCESS_DENIED。
2. 回调中的死锁:回调发生在进程创建的关键阶段,此时持有大量系统锁。千万不要在回调函数内阻塞等待同一个进程里的线程,也不要尝试在回调内同步执行高耗时的网络/磁盘 I/O。
3. 创建拦截策略:如果需要阻断目标进程创建,通过设置 PPS_CREATE_NOTIFY_INFO->CreationStatus = STATUS_ACCESS_DENIED 即可干净地终止,而不需要粗暴地在内部调用 ZwTerminateProcess。
4. 深度过滤:CommandLine 字段为 PUNICODE_STRING,但在某些壳程序注入时参数可能延迟初始化或被动态篡改,因此只信赖 ImageFileName 比单纯依赖命令行参数更加可靠。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|断点社区 |网站地图

GMT+8, 2026-10-4 06:31 , Processed in 0.190187 second(s), 27 queries .

Powered by XiunoBBS

Copyright © 2001-2025, 断点社区.

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