我正在尝试获取文件打开/写入/创建操作,我尝试过 fslogger 只能获取文件创建/删除....和其他操作,无法进行打开/关闭操作,然后我编写了一个驱动程序来做到这一点,我可以进行打开/关闭操作但不能进行创建操作,而且太乱了!例如,如果我打开一个文件并修改它,然后关闭它,驱动程序会得到很多打开/写入操作..我无法判断哪个是真正由用户打开/关闭操作引起的..任何提示对这个?谢谢。
问问题
639 次
1 回答
1
您最好的选择是 KAuth 系统。您安装您的 kauth 处理程序(作为内核扩展)并在有人尝试创建、打开或关闭文件时获取各种回调代码。这涉及在打开文件的关键路径中获取回调,因此无论您做什么都必须快速!
去引用:
KAUTH_SCOPE_FILEOP 定义了以下操作。
- KAUTH_FILEOP_OPEN
- KAUTH_FILEOP_CLOSE
- KAUTH_FILEOP_CLOSE_MODIFIED
- KAUTH_FILEOP_RENAME
- KAUTH_FILEOP_EXCHANGE
- KAUTH_FILEOP_LINK
- KAUTH_FILEOP_EXEC
https://developer.apple.com/library/mac/technotes/tn2127/_index.html
如果您正在编写一个 kext,那么您就会遇到如何将该信息返回到用户空间的问题。FWIW 我使用了 Kqueue,但你可能会用另一种方法成功(如果你这样做,请在评论中告诉我!)。
于 2013-09-04T12:07:10.237 回答