Win*_*ser 5 chroot sandbox linux-kernel seccomp bpf
如何使用Berkeley Packet Filter(BPF)过滤内核中的函数参数?该函数应该是任何非内联函数,而不仅仅是系统调用.此外,最好能够取消引用函数参数中的指针以进行验证.
我搜索了互联网,但找不到任何用例.大多数材料仅描述了如何使用seccomp/seccomp-BPF.
似乎整合了eBPF和kprobe/jprobe来实现挂钩.但我无法在网上找到一个好的例子.
eBPF可能就是您想要的。如果您还没有找到它们,您应该查看bcc(BPF 编译器集合)工具提供的示例。
\n\n特别是,示例工具argdist
确实依赖于 kprobes,并且您可能会感兴趣:
\n\n\nargdist 探测您指定的函数并将参数值收集到直方图或频率计数中。这可用于了解某个参数所取值的分布,过滤并打印感兴趣的参数,而无需附加调试器,并获取各种函数的一般执行统计信息。
\n\n例如,假设您想要查找应用程序中常见的分配大小:
\n\nRun Code Online (Sandbox Code Playgroud)\n\n# ./argdist -p 2420 -C \'p:c:malloc(size_t size):size_t:size\'\n[01:42:29]\np:c:malloc(size_t size):size_t:size\n COUNT EVENT\n[01:42:30]\np:c:malloc(size_t size):size_t:size\nCOUNT EVENT\n
[\xe2\x80\xa6]
\n
(摘自argdist 示例使用)。
\n\n根据记录,到目前为止我发现的大多数 eBPF 示例都位于以下位置之一:
\n\nlinux/samples/bpf
在 Linux 内核源码下。bcc/tools
bcc的目录下。tc
,位于iproute2/examples/tc
iproute2 包源目录下。) 归档时间: |
|
查看次数: |
624 次 |
最近记录: |