有没有办法检测 Windows 中进程正在更改的文件?
我创建了一个进程 - my_python_script.exe(我编译的 python 脚本),我想知道该进程使用 procmon.exe 或进程资源管理器等 Windows 工具更改了哪些文件。
在这篇文章中:Detect what process is changed a file on Windows 我发现正好相反(哪些进程更改了特定文件)。
但我想知道如何找到特定进程正在更改的所有文件。
谢谢你。
有没有办法检测 Windows 中进程正在更改的文件?
我创建了一个进程 - my_python_script.exe(我编译的 python 脚本),我想知道该进程使用 procmon.exe 或进程资源管理器等 Windows 工具更改了哪些文件。
在这篇文章中:Detect what process is changed a file on Windows 我发现正好相反(哪些进程更改了特定文件)。
但我想知道如何找到特定进程正在更改的所有文件。
谢谢你。
这很容易做到,你已经知道你需要使用的程序,它是“进程监视器”(
procmon.exe
),你只需要使用不同的过滤器。首先,您需要设置过滤器以包含您要通过任一组监视的程序:
PIDis
$pid
然后Include$pid
是实际 pid 的占位符,即7552
或者:Process Nameis
$name
那么Include$name
是实际进程名称的占位符,即explorer.exe
您可以通过任务管理器(
process name
),左键单击“更多详细信息”,然后右键单击资源值栏并检查“PID”和“进程名称”。pid
taskmgr.exe
about 两个选项中的任何一个都可以工作并且它们具有完全相同的效果,它们将
procmon
仅显示流程的活动,不同之处PID
是可变的,并且每次流程启动时都可能更改,但可能更容易键入。进程名称可能更难键入,但它是不变的(除非您重命名可执行文件)。然后您需要设置过滤器,Operationis
WriteFile
然后Include显示该进程所做的文件更改。WriteFile
是文件被修改时记录的操作。然后单击Apply,然后OK使过滤器生效。
我想知道如何找到特定进程正在更改的所有文件。
你可以用
procmon
这个。取消选择(取消选中)“文件 > 捕获事件”。
清除当前显示的事件 Edit > Clear Display
配置过滤器:
过滤器 > 过滤器... 菜单项。这将显示“Process Monitor Filter”对话框。
通过将“显示符合这些条件的条目”字段设置为,例如:
进程(下拉)>包含(下拉)notepad++(编辑框)
操作(下拉)>包含(下拉)fastio(编辑框)
文件 > 捕获事件
这是一个显示 Notepad++ 打开文件的示例
test.cmd
fastio
如果您想减少显示的事件数量,请将过滤器更改为更明确。