作者:星寴 | 来源:互联网 | 2022-12-24 10:54
我正在阅读有关kprobes
BPF程序类型的信息,我想知道是否有可能不仅为了跟踪目的而拦截函数调用或收集一些底层信息(寄存器,堆栈等),还可以替代调用并执行而不是实际执行功能?
是否kprobe
提供此功能,或者我在寻找错误的工具?
1> pchaigno..:
否,kprobes BPF程序仅具有对syscall参数和返回值的读取权限,它们无法修改寄存器,因此无法拦截函数调用。这是BPF验证程序施加的限制。
但是,内核模块可以使用kprobes拦截函数调用。
是的 您可能也对[this StackOverflow答案](/sf/ask/17360801/)感兴趣。