struct sock_filter
filter
[]
=
{
/
/
将帧的偏移
0
处,取
4
个字节数据,也就是系统调用号的值载入累加器
BPF_STMT(BPF_LD
+
BPF_W
+
BPF_ABS,
0
),
/
/
首先JMP是跳转,JEQ是相等条件,如果与
221
相等则执行下一条规则
BPF_JUMP(BPF_JMP
+
BPF_JEQ,
221
,
0
,
1
),
/
/
使用SECCOMP_RET_TRAP因为过滤器可捕获SIGSYS信号
BPF_STMT(BPF_RET
+
BPF_K,SECCOMP_RET_TRAP),
BPF_STMT(BPF_RET
+
BPF_K,SECCOMP_RET_ALLOW),
};
/
/
221
在这里其实是系统调用号,在头文件unistd.h中查询,在
64
位execv就是
221
,例如openat为
56