我正在尝试得到文件打开/写入/创建操作,我已经尝试过fslogger,它只能得到文件创建/删除...和其他操作,不能得到打开/关闭操作,然后我写了一个驱动程序来做,我可以得到打开/关闭操作,但不能得到创建操作,更重要的是,它太混乱了!例如,如果我打开一个文件并对其进行修改,然后将其关闭,驱动程序会收到许多打开/写入操作。我无法分辨哪一个操作是由用户的打开/关闭操作引起的。对此有什么提示吗?谢谢。
发布于 2013-09-04 20:07:10
你最好的选择就是KAuth系统。您可以安装kauth处理程序(作为内核扩展),并在有人试图创建、打开或关闭文件时获得各种回调代码。这涉及到在打开文件的关键路径中进行回调,所以无论您做什么都必须要快!
引述如下:
KAUTH_SCOPE_FILEOP定义了以下操作。
https://developer.apple.com/library/mac/technotes/tn2127/_index.html
如果你正在写一个kext,那么你就会有一个问题,那就是如何将这些信息返回到用户领域。FWIW我使用了Kqueue,但你可能用另一种方法成功了(如果你成功了,请在评论中告诉我!)
有关Kauth here和KQueue here的更多信息。它没有很好的文档记录,但在这两者之间有足够的信息来确定您需要做什么。
https://stackoverflow.com/questions/18612841
复制相似问题