【问题标题】:which kprobe hooks can I attach eBPF programs to?我可以将 eBPF 程序附加到哪些 kprobe 挂钩?
【发布时间】:2021-08-18 07:44:00
【问题描述】:

我正在学习 eBPF,并且我知道我可以将我的 eBPF 程序附加到 kprobes、uprobes、tracepoints 等等。我看到 /sys/kernel/debug/tracing/events/ 下有一个跟踪点列表,我可以在其中附加 eBPF 程序。但是,我如何找到我可以破解的 kprobe 函数,比如与 TCP 相关的函数?另外,如何找到这些函数签名?

谢谢。

【问题讨论】:

    标签: ebpf kprobe


    【解决方案1】:

    您可以将 kprobe 附加到内核的几乎所有函数(前提是在编译内核时它们没有被内联)。列出这些函数的一种方法是通过 cat /proc/kallsyms。在您的情况下,该文件上的tcp grep ?至于签名,我认为除了阅读内核源代码为您的内核版本之外,没有其他地方可以获得它们。

    请注意,由于内核函数不是用户 API 的一部分,因此无法保证其签名的稳定性(这可能是签名列表毫无意义的原因——除了大量的签名列出)。如果你希望你的 eBPF 程序在不同内核版本之间更加健壮和可移植,你应该看看CO-RE

    【讨论】:

    • 不是所有的内核函数。无法附加/sys/kernel/debug/kprobes/blacklist 中的函数。见kernel.org/doc/html/latest/trace/kprobes.html#blacklist
    • 因此是“几乎”:p。但感谢您的精确!
    • 请将“几乎”加粗。我只看粗体字:-D
    • 完成。 记下为 pchaigno 的下一个生日买眼镜。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    相关资源
    最近更新 更多