我需要跟踪用户访问(创建、打开、读取)的所有文件,并记录这些操作以在单独的应用程序中进行进一步处理。我已经调查并寻找了实现这一目标的可能方法(尽可能简单),并提出了以下解决方案:
挂钩 kernel32.dll 并拦截所有文件特定函数,如 CreateFileA、OpenFile 等。我想修改 IAT 并提供包装器功能。我仍然会将调用转发给原始函数,但会向我的应用程序报告何时访问了哪些文件。这听起来很容易实现,但我怀疑它能否在 Windows 7 上完美运行,因为在我看来,新的安全限制会通过修改导入地址表来阻止成功挂钩。也许有人知道得更好:)
编写文件系统微过滤器并使回调函数报告有关文件访问的情况。因为我之前没有写过微过滤器,所以我不知道这是否可行。我相信微过滤器的开发需要更多的努力。也许有人可以指出一些资源,例如编写简单文件系统微过滤器的教程。
我知道微软的 Detour 库,但在这个阶段我想避免使用它,因为钩子通常非常简单。是否有任何可靠的方法可以在不使用 Detours 或 EasyHook 的情况下在 Windows 7 中挂钩文件功能?关于微过滤器:我相信与处理加密的过滤器相比,我想要实现的目标非常简单。但是,我没有编写微过滤器的经验,也无法估计实现我的目标需要付出多少努力。我偶然发现的所有示例都涉及文件系统过滤器而不是微过滤器。
我很感谢任何提示和建议:)
问候,好奇