检测 Windows 上进程正在更改的文件

检测 Windows 上进程正在更改的文件

有没有办法检测 Windows 中某个进程正在更改什么文件?

我创建了一个进程 - my_python_script.exe(我已经编译的python脚本),我想使用Windows工具(例如procmon.exe或进程资源管理器)知道该进程更改了哪些文件。

在这篇文章中:检测 Windows 上哪个进程正在更改文件 我发现完全相反的情况(哪些进程改变了特定的文件)。

但我想知道如何找到特定过程正在更改的所有文件。

谢谢。

答案1

我想知道如何找到特定过程正在更改的所有文件。

您可以用于procmon此。

  1. 取消选择(取消选中)“文件 > 捕获事件”。

  2. 清除当前显示的事件 编辑 > 清除显示

  3. 配置过滤器:

    过滤器 > 过滤器... 菜单项。这将显示“进程监视器过滤器”对话框。

  4. 通过设置“显示符合这些条件的条目”字段来设置新过滤器,例如:

    流程(下拉)> 包含(下拉)notepad++(编辑框)

    操作(下拉菜单)> 包含(下拉菜单)fastio(编辑框)

  5. 文件 > 捕获事件

下面是一个显示 Notepad++ 打开文件的示例test.cmd

在此处输入图片描述

fastio如果您想减少显示的事件数量,请将过滤器更改为更明确。

答案2

这很容易做到,您已经知道您需要使用的程序,它是“进程监视器”(procmon.exe),您只需要使用不同的过滤器。

首先,您需要通过以下任一方式设置过滤器以包含您想要监控的程序:

PIDis$pid然后Include

  • $pid是实际 pid 的占位符,即7552

或:Process Nameis$name然后Include

  • $name是实际进程名称的占位符,即explorer.exe

您可以通过任务管理器( )获取process name并左键单击“更多详细信息”,然后右键单击资源值栏并检查“PID”和“进程名称”。pidtaskmgr.exe

上述两个选项都可以使用,而且效果完全相同,它们将procmon只显示进程的活动,不同之处PID在于每次进程启动时,它们都会发生变化,但输入起来可能更容易。进程名称可能更难输入,但不会改变(除非您重命名可执行文件)。

OperationisWriteFile然后需要设置过滤器,Include以显示该过程所做的文件更改。WriteFile是修改文件时记录的操作。

Apply然后点击OK,使过滤器生效。

相关内容