WIN64 驱动下枚举进程实际是最简单的,网上流传的版本很多(跟32位没什么区别),其实都是是获取 _EPROCESS,通过_EPROCESS来获取系统的所有进程。
这里只想说对于新手要注意两点:
1.是别把已经退出的进程也给显示出来
_EPROCESS->EXITTIME 注意这个可以判断进程是否已经退出 ,退出就没必要再显示了,直接忽略掉
_EPROCESS->ObjectTable 这个也是判断进程是否退出的好方法,如果进程真的完全死掉了,这位为NULL,但这个对于系统空闲进程(Idle)不能这么判断,Idle也为NULL,但EXITTIME却不显示退出
最好是两个一起判断,因为EXITTIME也不完全保证(如果有人把这个值故意设置成退出呢?)
&nbs

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

被折叠的 条评论
为什么被折叠?



