从kext订阅新流程创建并获取此流程的pid

时间:2014-04-24 17:12:22

标签: macos kernel kernel-extension mach

我正在尝试在我的kext中获取有关新创建的进程的通知。根据{{​​3}}我订阅了KAUTH_FILEOP_EXEC

但由于一些奇怪的原因,我只有2个参数可用 - vnode和文件名(Get process creation notification in Mac OS X)。

该进程应该已经在那时创建并且有一个pid,但内核不会给我。

此时是否有可能获得pid?

是否有其他方法可以从kext订阅新流程并获取此流程的pid?

1 个答案:

答案 0 :(得分: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);