gpt4 book ai didi

c - 在 Windows 中,如何在 C 中跟踪子进程读取和写入的文件?

转载 作者:可可西里 更新时间:2023-11-01 12:19:20 24 4
gpt4 key购买 nike

我的目标是确定何时执行命令,准确地读取和写入哪些文件。在 Linux 上,我可以使用 ptrace 来做到这一点(工作,类似于 strace 所做的)和 FreeBSD和 MacOS 我可以用 ktrace 做到这一点系统命令。您将使用什么在 Windows 上获取此信息?

到目前为止,我的研究表明我要么使用调试器接口(interface)(在很多方面类似于 ptrace),要么可能使用 ETW .第三种选择是插入一个 DLL 来拦截系统调用。不幸的是,我没有经验来猜测这些方法中的每一种方法的挑战性。

有什么建议吗?

最佳答案

不幸的是,似乎没有简单的方法可以在 Windows 上拦截文件级操作。

这里有一些提示:

  • 你可以尝试使用FileMon来自 Sysinternals如果它足以满足您的需求,或者尝试查看该工具的来源
  • 你可以使用像Detours这样的商业软件- 请注意,我自己从未使用过它,我不确定它是否真的满足您的需求

如果您想更好地理解并且不害怕手动,Windows 拦截文件I/O 的方式是使用File System Filter Driver。 .其实还有一个FilterManager嵌入到 Windows 系统中,可以将所有文件系统调用转发给 minifilters

要构建它,与系统的接口(interface)由 FilterManager 提供,您只需 (...) 编写代码并安装执行实际过滤的 minifilter - 再次注意从未测试过那...

关于c - 在 Windows 中,如何在 C 中跟踪子进程读取和写入的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29414071/

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