我正在阅读关于kprobes BPF程序类型的文章,我想知道是否有可能不只是为了跟踪目的拦截一个函数调用,或者收集一些低级信息(寄存器、堆栈等),而是替换一个调用并执行而不是实际的函数?
是kprobe提供了这个功能,还是我找错了工具?
发布于 2018-03-16 11:49:00
不是,k探测BPF程序只读取对syscall参数和返回值的访问,它们不能修改寄存器,因此不能拦截函数调用。这是BPF验证器施加的限制。
然而,内核模块可以使用k探针拦截函数调用。
https://stackoverflow.com/questions/49319439
复制相似问题