gpt4 book ai didi

macos - 如何获得正在 OS X 上读取文件的通知?

转载 作者:行者123 更新时间:2023-12-01 11:29:46 25 4
gpt4 key购买 nike

我有一款适用于 Windows 的软件。该软件有两个组件:在内核模式下工作的文件系统 minifilter 驱动程序和与驱动程序对话的用户模式组件。驱动程序接收有关 IO 中断请求的通知,例如 IRP_MJ_READ .可以在 github 上找到执行此操作的示例应用程序.这适用于 Windows 支持的任何用户和大多数文件系统。

我需要为 OS X(仅限桌面和服务器)开发类似的软件。我看过的东西:

我的保留意见是:FSEvents 的性能可能不是很好,因为我需要监控根 / 文件夹和任何挂载的设备。我对内核队列和系统调用 API 劫持的了解非常有限,这可能会使移植到不同的 OS X 版本变得非常困难,并可能导致与 AV 或操作系统保护(例如 PaX 强化)发生冲突。

问题:如果 OS X 上的任何用户正在读取根目录 / 中的任何(递归)文件夹中的文件,我如何才能收到通知?

最佳答案

有了内核扩展,Kernel Authorization提供 File Operation Scope ,允许您监控所有 vnode 的 KAUTH_FILEOP_OPEN 操作。

KAUTH_FILEOP_OPEN操作将在访问所有文件之前被调用,从而允许您监控文件访问。

如果您想要更精细的操作,VNode scope提供了一组更大的操作,包括 KAUTH_VNODE_READ_DATA,但请注意,此范围可能非常嘈杂,会在任何时候触发大量操作。

此类内核扩展的示例代码可以在 Singh 的 Mac OS X Internals 中找到。

关于macos - 如何获得正在 OS X 上读取文件的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33543375/

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