我发现有些软件总是在后台检查我电脑里的文件。有什么方法可以制作一个应用程序来列出哪些软件访问过我的文件吗?
我需要一些想法。----------------
我
只需要大概的想法。我没有这样的经验,也没有想法,但我只是在寻找任何可能的方法来实现它。但我认为它一定有办法。操作系统:Windows。语言,不具体说明。最好是 c#、c/C++
答案1
您可以使用 Procmon.exe(您可以从这里下载:http://technet.microsoft.com/en-us/sysinternals/bb896645并在这里找到教程:http://www.k-state.edu/its/security/training/2009-4-9/presentations/handouts/Process_Monitor_Tutorial_Handout.pdf)。
要监视对文件的访问,只需添加到过滤器:
- 事件类别不是文件系统则排除
- 路径不是“你的文件的路径”,则排除
然后开始捕获事件(CTRL+E),对文件的所有访问都将被记录下来,并且“进程名称”列会告诉您访问该文件的可执行文件。
答案2
您可以使用 Sysinternal 出色的进程监控工具来实现这一点。您可以应用所需的过滤器,以便只看到对所需文件的读/写访问。另一方面,以编程方式完成相同操作可能需要更多的工作。
答案3
您使用的是 .NET 吗?如果是,那么您可以使用FileSystemWatcher
。查看这里。
答案4
您可以为要监视的文件夹启用对象访问审核。以下是链接http://technet.microsoft.com/en-us/library/cc784387(v=ws.10).aspx
然后您需要在 Windows 机器中使用事件查看器,在 Windows 日志->安全中,您可以看到访问、更改文件夹内容时记录的事件(取决于启用对象访问审核时的设置)。每个日志都有您需要的字段进程名称和进程 ID。