gpt4 book ai didi

windows - 监视 Windows 中进程完成的某些系统调用

转载 作者:可可西里 更新时间:2023-11-01 12:04:49 25 4
gpt4 key购买 nike

我希望能够监控进程进行的某些系统调用,主要是文件 I/O 调用。在 Linux 上,我可能可以使用 strace使用合适的参数,但我如何在 Windows 上执行此操作?

我主要感兴趣的是运行一个进程并弄清楚它读取和写入了哪些文件。

我想从另一个进程以编程方式执行此操作。我知道 Process Monitor , 但我希望以一种可以导入到另一个程序中以供进一步分析的形式接收数据。

如果我进一步缩小我的要求,可能足以监控对 CreateFile() 的调用。我真的只对打开了哪些文件感兴趣,以及打开它们是为了读/写还是只读。另一个我没有真正说明的要求是速度相当重要;我正计划为诸如编译 C++ 文件之类的事情执行此操作,并拉出生成 20 MB 日志文件的完整 GUI 会产生高昂的开销。

如果不需要管理权限就好了。

最佳答案

Windows 上有几个选项。

Windows Performance Toolkit可用于启用对各种系统事件(包括文件 I/O)的跟踪,并包括用于处理和查看这些事件的工具。您可以使用 xperf 开始跟踪各种类别的事件并保存到 ETL 文件中,然后您可以稍后使用相同的工具处理或查看该文件。

Process Monitor来自 Sysinternals是另一个非常易于使用的选项,它使您能够快速查看系统上任何进程正在执行的所有文件和注册表访问。您也可以run Process Monitor in an automated fashion .

如果您想完全以编程方式执行此操作,您可以使用 ETW 函数(StartTrace、EnableTrace 等)捕捉文件 I/O 事件并保存到 ETL 文件。示例代码 here .

关于windows - 监视 Windows 中进程完成的某些系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com