我正在尝试在我的kext中获取有关新创建的进程的通知。根据{{3}}我订阅了KAUTH_FILEOP_EXEC
但由于一些奇怪的原因,我只有2个参数可用 - vnode和文件名(Get process creation notification in Mac OS X)。
该进程应该已经在那时创建并且有一个pid,但内核不会给我。
此时是否有可能获得pid?
是否有其他方法可以从kext订阅新流程并获取此流程的pid?
答案 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);