必须用process monitor以管理员身份实时捕获createfile、regsetvalue等内核级操作,通过进程名/pid过滤、堆栈跟踪、双维度筛选(write/set/create+success)精准定位软件修改的文件与注册表项。

要精准定位某个软件在Windows 10中偷偷修改了哪些文件和注册表项,不能靠猜、不能靠事后翻日志,必须用Process Monitor在动作发生的瞬间捕获原始系统调用——它记录的是CreateFile、RegSetValue、NtWriteFile这类内核级操作,不是任务管理器里模糊的“磁盘占用高”。
启动前的关键准备
以管理员身份运行Procmon.exe,否则会漏掉大量系统级进程(如svchost、lsass)的注册表写入和受保护目录的文件操作。【不以管理员权限启动,90%以上的关键修改行为将无法捕获】
首次运行时弹出的过滤设置窗口直接点Cancel跳过,避免预设规则干扰初始观察。
点击顶部工具栏的“Capture Events”按钮(虚线方框图标)开始监控,此时事件列表会立即滚动——这不是异常,是Windows底层每毫秒都在进行的真实活动。
精准锁定目标软件的操作范围
方法一:按进程名实时过滤
在工具栏点击Filter → Filter… → 弹出窗口中设置:
Process Name is yourapp.exe → Add → OK。
注意:yourapp.exe需替换为实际进程名,例如微信是WeChat.exe,迅雷是Thunder.exe;若软件多进程(如Chrome),该方式会捕获全部子进程行为。
方法二:用PID精确绑定单个实例
先在任务管理器“详细信息”页找到目标进程的PID(右键列标题→勾选“PID”),回到Procmon点击Filter → Filter… → 设置 PID is 12345 → Add → OK。
这一步能避开同名进程干扰,特别适合调试刚启动就崩溃的程序。
方法三:启用堆栈跟踪追溯源头
点击Options → Enable Thread Stack Traces,再勾选工具栏的“Show Stack Trace”按钮(图标为上下箭头叠加)。当某条RegSetValue事件被选中时,底部面板的Stack标签页会显示调用链,例如:ntdll.dll → advapi32.dll → yourapp.exe+0x1a2b3c——这意味着修改注册表的动作确实源自你的软件,而非系统服务代劳。
聚焦文件与注册表两类关键事件
第一步:关闭无关事件类型
点击工具栏四个图标按钮,仅保留“Registry”和“File System”为高亮状态,关闭“Network”“Process”“Thread”,大幅降低噪声。
第二步:设置双维度结果过滤
在Filter → Filter…中连续添加两条规则:
① Operation contains “Write” OR “Set” OR “Create”
② Result is SUCCESS
这样能排除大量只读查询和失败操作,直击真正落地的修改行为。
第三步:定位高频路径快速筛查
观察事件列表的Path列,手动拖动滚动条查找重复出现的路径。常见高危区域包括:
• 注册表:HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings(代理设置)
• 文件:C:\Users\{用户名}\AppData\Local\YourApp\config.dat(配置文件)
• 全局注册表:HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings(组策略覆盖)
第四步:右键导出关键事件
按住Ctrl键多选可疑的Registry Write或File Write事件 → 右键 → “Include Selected Events in Filter” → 再右键 → “Save Selected Events…” → 保存为.PML格式。这个文件可离线发给同事复现,也可用Procmon再次加载分析。











