Windows驱动学习笔记之三 驱动枚举进程(WIN64)
来源:互联网 发布:呦呦切克闹网络神曲 编辑:程序博客网 时间:2024/05/08 22:22
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_PROCESS_CREATION_INFO -> _OBJECT_NAME_INFORMATION -> ImageFileName
这里面存的是全路径,能取到全路径,还怕取不到进程名吗?嘿嘿,这个不用我再说了吧。
但是.......取到的路径格式会是\Device\HardVolume1\......这是NT路径,却不是我们的DOS路径,经过实验证明
ZwCreateFile,ObReferenceObjectByHandle,RtlVolumeDeviceToDosName这三个API结合,就可以把\Device\HardVolume1\转换成我们习惯的DOS路径。
这些说起来挺容易,对于新手第一次做如果没有任何讲解还是,想找到上面说的第二点还是需要些时间的。
- Windows驱动学习笔记之三 驱动枚举进程(WIN64)
- Windows驱动学习笔记之四 驱动通过PEB枚举系统进程模块(Win64)
- windows驱动编程学习笔记——(三)IRP
- windows驱动学习笔记
- Windows驱动_USB驱动之三
- Windows 驱动开发笔记(三)
- 驱动枚举进程
- Windows驱动_WDDM之三
- windows驱动开发学习笔记
- Win64 驱动内核编程-28.枚举消息钩子
- Win64 驱动内核编程-34.对抗与枚举MiniFilter
- Linux驱动学习笔记之触摸屏驱动
- Linux驱动学习笔记之触摸屏驱动
- Linux驱动学习笔记之触摸屏驱动
- Linux驱动学习笔记之触摸屏驱动
- 驱动学习之windows认识!
- uClinux学习笔记之三 uClinux驱动开发初步
- Junit学习笔记之三:测试驱动开发
- Erlang学习笔记--开篇和安装步骤
- 设置布局管理器中item的 伸缩因子(stretch factor)
- ASSIC码对照表
- 谷歌的中文搜索感受一览
- Java中HashMap遍历的两种方式
- Windows驱动学习笔记之三 驱动枚举进程(WIN64)
- 4G来了,请别急!你不知道的4G手机秘密。。。
- 使用itext5做html转pdf不全问题
- Machine Learning Foundations(机器学习基石)笔记 第一节
- Java (log)日志管理最佳实践
- redis C++ API
- Android4.4 Activity启动流程
- SML语言 形式语意学
- VB 读写UTF8文本文件