当前位置: 首页 > news >正文

Process Monitor 学习笔记(5.2):事件模型与五大类操作(文档/注册表/进程/网络/Profiling

Process Monitor 学习笔记(5.2):事件模型与五大类操作(文档/注册表/进程/网络/Profiling

2025-11-09 10:38  tlnshuju  阅读(0)  评论(0)    收藏  举报

Process Monitor 学习笔记(5.2):事件模型与五大类操作(文件/注册表/进程/网络/Profiling

  • Process Monitor 学习笔记(5.2):事件模型与五大类操作(文件/注册表/进程/网络/Profiling)
    • 一、事件模型总览:一条事件 = 谁 + 何时 + 做了什么 + 在哪儿 + 结果 + 细节 + 证据
    • 二、五大类操作如何读(含典型序列 & 常见坑)
      • 1)文件(File System)
      • 2)注册表(Registry)
      • 3)进程 / 线程(Process & Thread)
      • 4)网络(Network)
      • 5)Profiling(CPU 采样)
    • 三、读懂一条“有价值”的事件(示例解剖)
    • 四、过滤与高亮的通用套路(降噪 80%)
    • 五、栈(Stack)= 证据链
    • 六、常见 Result 速查(便携清单)
    • 七、一步一招的“排障剧本”(可直接照做)
    • 八、结语

Process Monitor 学习笔记(5.2):事件模型与五大类操控(档案/注册表/进程/网络/Profiling)

本篇聚焦 “一条 Procmon 事件到底包含什么?”“五大类操作如何读懂与排障”。看懂这一节,你就能把海量日志“化噪为信”。


一、事件模型总览:一条事件 = 谁 + 何时 + 做了什么 + 在哪儿 + 结果 + 细节 + 证据

Procmon 把框架调用抽象为事件,核心字段建议这样理解/启用:

建议列配置:勾选TID / Category / User / Integrity / Duration / Command Line / Company / Path,并在工具栏启用堆栈。当日志量很大时,先过滤再打开堆栈,可显著降压。


二、五大类操作如何读(含典型序列 & 常见坑)

1)文件(File System)

常见 Operation

典型序列

易混淆返回码


2)注册表(Registry)

常见 Operation

  • RegOpenKey / CreateKey / CloseKey
  • RegQueryValue / SetValue / EnumKey / EnumValue / DeleteValue

典型序列

  • 读配置:RegOpenKeyRegQueryValueCloseKey
  • 写配置:RegOpenKey/CreateKeyRegSetValueCloseKey

必看细节

  • Desired AccessQueryValue, SetValue, CreateSubKey, EnumerateSubKeys…)
  • WOW64 重定向:HKLM\Software(64 位) vs HKLM\Software\WOW6432Node(32 位)
  • UAC/权限:ACCESS DENIED 快速定位策略/ACL 问题
  • 虚拟化/兼容层否有重定向(同样依赖就是:遇到意外路径,请查看Detail/Stack

3)进程 / 线程(Process & Thread)

常见 Operation

实战要点


4)网络(Network)

常见 Operation

  • TCP Connect / TCP Reconnect / TCP Disconnect
  • TCP Send / TCP Receive
  • UDP Send / UDP Receive

理解边界

  • Procmon 不是抓包器,不展示负载内容,但能看到连哪里是否成功
  • 结合 Detail 看本地/远端 IP:Port 与返回码(WSAE*/Win32 错误)。
  • 与防火墙/代理/证书验证疑问对照排查;必要时配合抓包工具。

5)Profiling(CPU 采样)

温馨提示:采样 + 栈解析会增加开销;在大规模抓取前先在小窗口验证。


三、读懂一条“有价值”的事件(示例解剖)

示例:文件打开失败

Operation  : CreateFile
Path       : C:\ProgramData\Vendor\App\config.json
Result     : ACCESS DENIED
Detail     : Desired Access: Generic Read, Disposition: Open,ShareMode: Read, Write, Options: Non-Directory File,Attributes: n/a
Process    : App.exe (PID 1234)  Integrity: Medium  User: DOMAIN\User

如何解读

  1. ACCESS DENIED → 核心矛盾是权限
  2. Desired Access: Generic Read → 仅需“读”,却仍被拒
  3. 结合 Integrity/User否跨会话/跨账户访问共享数据?就是:
  4. Stack:谁发起?有没有安全产品/驱动在中途介入?
  5. 右键 Jump to Path / Permissions或直接检查该文件/父目录 ACL

四、过滤与高亮的通用套路(降噪 80%)

起手三板斧

  1. Process Name is <目标进程> → Include
  2. Category is (File System OR Registry)(按需加 Network/Process)
  3. 勾选 Drop Filtered EventsCtrl+X清屏后复现问题

高亮规则(建议)

  • Result contains DENIED|VIOLATION|NOT FOUND|TIMEOUT → 高亮
  • Operation begins with Query* → 可先 Exclude 减少噪音
  • Path begins with C:\Windows\Prefetch / 临时目录 → 先排除

五、栈(Stack)= 证据链


六、常见 Result 速查(便携清单)

Result意义/处置建议
SUCCESS正常;若性能差,看 Duration/Stack
ACCESS DENIED权限/策略/锁定;查 ACL、完整性、句柄占用
NAME NOT FOUND末级对象不存在;路径/文件名/键名错误或探测
PATH NOT FOUND中间目录缺失;部署/安装/重定向错误
SHARING VIOLATION共享模式冲突;找到“先占用者”并比对 ShareMode
REPARSE发生重解析;检查符号链接/联接点/兼容层
BUFFER OVERFLOW多为长度探测,非错误;可忽略
FAST IO DISALLOWED否影响性能就是走慢路径,非错误;关注

七、一步一招的“排障剧本”(可直接照做)

  1. 缩小范围:按进程/类别 Include →Drop Filtered Events
  2. 复现问题:短时间抓取,立即停止
  3. 定位失败:按 Result 排序/高亮,先看 DENIED/NOT FOUND/VIOLATION
  4. 读 Detail:权限/共享/重解析/Disposition
  5. 看栈否三方模块介入?就是:是谁触发?
  6. 对策:改 ACL/修部署/修路径/修共享;必要时与安全或驱动团队沟通
  7. 沉淀:保存 Filter/Column 布局为模板,团队复用

八、结语

理解事件模型与五大类操作,你就有了读懂 Procmon 的“通用语法”。
下一篇(5.3 过滤、强调与收藏:把 1000 万行变 100 行)将系统演示如何构建稳定可复用的过滤器与高亮规则,显著提升定位效率。