Tag: bpf

始终在BPF程序中获得0会话ID

我正在尝试编写一个BPF程序来检查调用tty_write内核函数的任何进程的会话ID。 我试图通过从当前task_struct结构中检索一个字段来做到这一点。 我的代码如下: SEC(“kprobe/tty_write”) int kprobe__tty_write(struct pt_regs *ctx) { struct task_struct *task; struct task_struct *group_leader; struct pid_link pid_link; struct pid pid; int sessionid; // get current sessionid task = (struct task_struct *)bpf_get_current_task(); bpf_probe_read(&group_leader, sizeof(group_leader), &task->group_leader); bpf_probe_read(&pid_link, sizeof(pid_link), group_leader->pids + PIDTYPE_SID); bpf_probe_read(&pid, sizeof(pid), pid_link.pid); sessionid = pid.numbers[0].nr; // do stuff with sessionid return 0; } 请注意,我正在使用clang编译我的BPF程序到ELF文件并使用gobpf的 […]