获取内核中给定pid或vfs_context的完整路径

时间:2019-05-03 05:53:43

标签: macos kernel-extension

我正在尝试创建文件访问过滤器。即,只有某些应用程序可以访问某些文件。

例如:如果试图打开机密信息,则只有“ /Application/Incometax.app/Contents/macosx/incometax”可以访问“ / Users / Prasanna / Confidentialinfo”任何其他应用程序,访问应该被拒绝。

我开始使用kauth模块并侦听Vnode范围。

无论何时访问文件,我都可以从回调中获取正在访问文件的“文件路径”,vfs_context和pid。

使用pid和proc_name API。我只有正在访问文件的进程名称。需要找到过程的绝对路径。

此外,作为回调的一部分收到的Vnode路径似乎有些不同。我如何将其转换为用户看到的路径。

例如:当我访问“ /tmp/info.txt”时,在回调中收到的路径是“ /private/tmp/info.txt”

请帮助:  1.获取正在访问文件的应用程序的绝对路径  2.将检索到的路径从Vnode路径转换为用户陆地路径。

参考:  1. Apple kauth documentation  2. Sample implementation of kauth  3. Similar stackoverflow question:无法从vfs_context获得路径吗?该结构似乎是私有的?

谢谢, 普拉萨纳

0 个答案:

没有答案