我正在学习eBPF,我知道我可以将我的eBPF程序附加到k探针、u探针、跟踪点等等。我看到在/sys/内核/调试/跟踪/events/下面有一个用于跟踪点的列表,我可以在其中附加eBPF程序。但是,如何找到我可以破解哪些k探针函数,比如TCP相关的函数?另外,我如何找到那些函数签名?
谢谢。
发布于 2021-05-30 23:12:07
您可以向附加一个k探头--内核的几乎所有函数(只要它们在编译内核时没有内联)。列出这些函数的一种方法是通过cat /proc/kallsyms.在您的例子中,该文件上的grep用于tcp吗?至于签名,我认为除了通过读取内核版本的内核源代码之外,没有其他地方可以获得签名。
请注意,因为内核函数不是用户API的一部分,因此不能保证它们的签名的稳定性(这可能是为什么签名列表没有什么意义--除了大量要列出的签名外)。如果您希望您的eBPF程序在不同的内核版本之间更加健壮和可移植,那么您应该看看CO-RE。
https://stackoverflow.com/questions/67766320
复制相似问题