本文开始,我们将介绍 SysInternals 中的另一重磅利器 Process Monitor。Process Monitor 是一个操作系统活动和进程活动的事件监控利器,它可以帮助我们监控进程和线程的网络活动、注册表操作、文件系统读写等操作。熟悉 SysInternals 早期工具的朋友应该听说或使用过 Filemon 和 Regmon,其实 Process Monitor 就是上述两个工具停止更新和支持后推出的一个功能增强综合体。
Process Monitor是干嘛的?
从本质上说,我们之前介绍的 Process Explorer 工具是一个可以对进程进行操作和管控的主动工具,而 Process Monitor 相较之下可以看作是一个能够对系统全局事件进行监控的被动工具,使用 Process Monitor 我们可以查看到操作系统或应用程序进程在后台本质上进行了哪些操作。
上面这些说法大家可能没啥直观的感受,说明白一点就是:Process Monitor 可以帮助我们查看到更改某个系统配置时在后台更改的是哪个具体的注册表值,我们在配置更改组策略时调整的又是哪个对应的注册表值,观察到某个应用程序到底读写了磁盘上的哪些文件,某个进程与远程的哪些 IP 地址的端口建立了连接等等。
Process Monitor可以捕获哪些事件?
Process Monitor 虽然可以捕获 Windows 操作系统中的大多数操作数据,但并非抓取每条信息。它所做的只是获得特定类型的 I/O(输入/输出)操作,其中就包括:文件系统、网络通讯和注册表。当然它还会额外跟踪其它比较有限几种事件,例如:
- 注册表:监控注册表的创建、读取、删除或查询操作。
- 文件系统:监控本地磁盘或网络驱动器中文件的创建、写入、删除等操作。
- 网络:监控进程的 TCP/UDP 源和目标及流量。
- 进程:可以被动监控进程和线程的活动,包括线程的启动或退出等。不过通常情况下我们都使用 Process Explorer 来监控进程。
- 性能分析:Process Monitor 还可以捕获进程的 CPU 时间和内存使用,通常情况下这些信息我们也主要依赖 Process Explorer 来监控分析。
总的来说,Process Monitor 可以捕获和监控 Windows 中的 I/O 操作,虽然它不记录实际对注册表、文件系统或网络传输中的数据,但我们可以监控到进程的所有操作事件,这足够我们进行后续的深入分析。
Process Monitor界面
首次打开和使用 Process Monitor 用户会看到一大堆杂乱无章的数据在眼前飞速跳动,让人感觉压力山大。这可能是 SysInternals 系列工具中的常见情况吧,毕竟是提供给专业人士使用的。由于其默认监控项比较多,而 Windows 及各种软件的后台操作实在太多,瞬间就会有超过数百万至数千万的事件被监控到。
后面的教程中 Winclient.cn 会逐步教大家如何在这些成百上千万的数据中筛选出自己想要获取的有用信息,这里大家只需对界面有一个感性认识即可。
Process Monitor默认列
Process Monitor 的默认列中显示了微软认为对用户最为有用的常用信息,其中从左到右分别为:
- Time:此列对应每行,显示该事件发生的精确时间。
- Process Name:此列显示的为生成该事件的进程名称,默认该列只显示进程所对应的 exe 文件名称,如果将鼠标指向某个进程名则会悬浮显示该 exe 在磁盘中的具体路径。
- PID:这个不用多说吧,就是进程 ID。
- Operation:该列记录的是该事件中所执行的操作名称,主要匹配对注册表、文件、网络和进程的操作。
- Path:此列记录的是此事件操作路径,非进程的路径哦。例如:WriteFile 事件在此路径中记录的是操作的文件或文件夹路径,如果是注册表事件则会记录所操作的注册路径。
- Result:此列记录的为该事件操作结果,主要状态有SUCCESS(成功)或ACCESS DENIED(访问拒绝)等。
- Detail:此列记录一些事件操作的额外细节信息,通常不对排错起太大意义。
当然,以上这些列只为 Process Monitor 提供的默认列,如果你觉得不够的话可以在列名上右键 — 选择 Select Columns 来自定义选择所需的列。
小结
本文内容中我们只对 Process Monitor 的作用及界面进行简单的介绍,先让大家知道它能够干些啥。下节的文章中我们再介绍 Process Monitor 的常用功能。
感谢分享