1

我需要跟踪用户访问(创建、打开、读取)的所有文件,并记录这些操作以在单独的应用程序中进行进一步处理。我已经调查并寻找了实现这一目标的可能方法(尽可能简单),并提出了以下解决方案:

  1. 挂钩 kernel32.dll 并拦截所有文件特定函数,如 CreateFileA、OpenFile 等。我想修改 IAT 并提供包装器功能。我仍然会将调用转发给原始函数,但会向我的应用程序报告何时访问了哪些文件。这听起来很容易实现,但我怀疑它能否在 Windows 7 上完美运行,因为在我看来,新的安全限制会通过修改导入地址表来阻止成功挂钩。也许有人知道得更好:)

  2. 编写文件系统微过滤器并使回调函数报告有关文件访问的情况。因为我之前没有写过微过滤器,所以我不知道这是否可行。我相信微过滤器的开发需要更多的努力。也许有人可以指出一些资源,例如编写简单文件系统微过滤器的教程。

我知道微软的 Detour 库,但在这个阶段我想避免使用它,因为钩子通常非常简单。是否有任何可靠的方法可以在不使用 Detours 或 EasyHook 的情况下在 Windows 7 中挂钩文件功能?关于微过滤器:我相信与处理加密的过滤器相比,我想要实现的目标非常简单。但是,我没有编写微过滤器的经验,也无法估计实现我的目标需要付出多少努力。我偶然发现的所有示例都涉及文件系统过滤器而不是微过滤器。

我很感谢任何提示和建议:)

问候,好奇

4

2 回答 2

0

您是否检查过我们的CallbackFilter产品,它提供了一个现成的过滤器驱动程序并允许您在用户模式下编写所有逻辑?

于 2011-05-24T12:58:42.333 回答
0

在 .NET 中,您可以使用FileSystemWatcher

于 2011-05-24T10:16:41.363 回答