ebpf:拦截函数调用
ebpf: intercepting function calls
我正在阅读有关 kprobes
BPF 程序类型的信息,我想知道是否有可能不只是为了跟踪目的拦截函数调用或收集一些低级信息(寄存器、堆栈等),但是替换调用并执行而不是实际函数?
kprobe
是否提供此功能,或者我看错了工具?
不,kprobes BPF 程序只能读取系统调用参数和return值,它们不能修改寄存器,因此不能拦截函数调用。这是 BPF 验证者强加的限制。
内核模块,但是,可以使用 kprobes 拦截函数调用。
我正在阅读有关 kprobes
BPF 程序类型的信息,我想知道是否有可能不只是为了跟踪目的拦截函数调用或收集一些低级信息(寄存器、堆栈等),但是替换调用并执行而不是实际函数?
kprobe
是否提供此功能,或者我看错了工具?
不,kprobes BPF 程序只能读取系统调用参数和return值,它们不能修改寄存器,因此不能拦截函数调用。这是 BPF 验证者强加的限制。
内核模块,但是,可以使用 kprobes 拦截函数调用。