1

我知道作为一般注释文件不应该从内核空间读取。

但是我有兴趣使用 BPF 程序在某些文件中查找关键字。

理想情况下,我希望 BPF 程序能够附加到 Kprobe,并且当事件触发时,我希望它说读取文件并计算关键字出现在文件中的实例。

谁能告诉我是否可以读入这样的文件,也许可以就我如何处理这个问题提供一些指导。

谢谢,山姆

4

1 回答 1

0

不,这是不可能的。

但是,如果您重新考虑您的设计,您可能会实现一些接近的目标:

  • 如果您要读取的文件直接与您要探测的进程相关联,那么例如,您可以将 eBPF 程序附加到该进程用于访问文件的函数(例如readwrite系统调用)。您将无法访问该文件,但您可以访问您的进程读取或写入的数据,并计算其中的关键字实例。
  • 如果文件内容与您跟踪的进程没有直接关系,但需要以某种方式做出决定,您可以使用用户空间程序对其进行处理,然后提供相关数据(例如关键字的出现次数) 到 eBPF 映射中。然后,eBPF 程序可以读取这些数据并根据它做出决策。
于 2021-02-08T15:06:04.483 回答