You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下能否获取程序启动的子进程创建的文件列表?有无相关API?

在Windows中追踪自启动进程创建的文件列表

可以实现,主要有两类技术方案,分别对应Win32原生API和.NET框架的能力:

一、Win32原生API方案

  • ETW(Event Tracing for Windows):这是轻量级且高效的首选方案,无需驱动。通过订阅Microsoft-Windows-Kernel-File事件提供者,捕获FileCreate、FileRename等核心文件操作事件,再通过事件中的进程ID(PID)筛选出你方启动的进程所创建的文件。核心API包括OpenTrace、EnableTraceEx2、ProcessTrace,解析事件数据即可提取文件路径。
  • 文件系统过滤驱动:如果需要监控所有文件操作(包括绕过标准API的底层操作),可以开发WDM过滤驱动,注册回调函数拦截文件创建请求,并关联到目标进程的PID。但该方案门槛较高,需要驱动签名(64位系统强制要求),仅适合对监控精度要求极高的场景。
  • Job对象辅助:配合Job对象(CreateJobObject、AssignProcessToJobObject)可以将目标进程及其子进程纳入统一管控,再结合ETW或过滤驱动,能更精准地锁定需要监控的进程树,避免遗漏子进程创建的文件。

二、.NET实现方式

-.NET原生可以通过System.Diagnostics.Tracing命名空间的EventListener类,订阅Microsoft-Windows-Kernel-File的事件,解析事件负载(Payload)获取文件路径和进程ID,筛选出目标进程的记录。

  • 也可以通过P/Invoke直接调用Win32的ETW相关API,实现更灵活的事件过滤和控制逻辑,适合需要定制化监控规则的场景。

注意事项

  • 监控操作需要足够权限:ETW捕获内核事件通常需要管理员权限;
  • 需覆盖子进程:如果目标进程会启动子进程,要同时监控子进程的PID,避免遗漏文件;
  • 性能差异:ETW性能开销极低,适合大多数生产场景;过滤驱动性能影响稍大,但监控范围更全面;

内容的提问来源于stack exchange,提问作者user8649828

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:58:24