2

我正在尝试在我的 kext 中获取有关新创建进程的通知。根据在 Mac OS X 中获取进程创建通知,我已订阅 KAUTH_FILEOP_EXEC

但由于一些奇怪的原因,我只有 2 个参数可用 - vnode 和文件名(https://developer.apple.com/library/mac/technotes/tn2127/_index.html)。

那个时候应该已经创建了进程并且有一个pid,但是内核没有给我。

这个时候能不能拿到pid?

是否有其他方法可以从 kext 订阅新进程创建并获取该进程的 pid?

4

1 回答 1

2

是的,您绝对可以从文件范围中获取 pid:-

#include <sys/proc.h>

proc_t self = proc_self();
int pid = proc_pid(self);

// ensure you release the reference to self
proc_rele(self);
于 2014-04-25T12:19:18.173 回答