Windows驱动学习笔记之三 驱动枚举进程(WIN64)

本文介绍了在Windows 64位驱动中枚举进程时应注意的两个关键点:避免显示已退出的进程,以及正确获取完整进程名称。通过检查_EPROCESS结构的EXITTIME和ObjectTable字段来判断进程状态,同时指出PsGetProcessImageFileName可能截断长进程名。建议使用_EAUDIT_PROCESS_CREATION_INFO和相关API获取全路径,并转换为DOS路径。
摘要由CSDN通过智能技术生成


WIN64 驱动下枚举进程实际是最简单的,网上流传的版本很多(跟32位没什么区别),其实都是是获取 _EPROCESS,通过_EPROCESS来获取系统的所有进程。

这里只想说对于新手要注意两点:

                    1.是别把已经退出的进程也给显示出来

                        _EPROCESS->EXITTIME   注意这个可以判断进程是否已经退出 ,退出就没必要再显示了,直接忽略掉

                        _EPROCESS->ObjectTable 这个也是判断进程是否退出的好方法,如果进程真的完全死掉了,这位为NULL,但这个对于系统空闲进程(Idle)不能这么判断,Idle也为NULL,但EXITTIME却不显示退出

                       最好是两个一起判断,因为EXITTIME也不完全保证(如果有人把这个值故意设置成退出呢?)

                    2.是PsGetProcessImageFileName不要用

                       对于新手来说有API直接返回固然是好事,但这个API对应的是_EPROCESS->ImageName[16],看到数组了吗?

                       最多只能16个字符啊,要是进程名子超过了肿么办呢,肯定取不全了,取一半肯定不是我们想要的。所以不建议使用这个API。

                       其实还有很多地方可以取,这里说一个

                        EProcess -> _SE_AUDIT_PROCE

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值