首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与探针相比,K探针的优势

与探针相比,K探针的优势
EN

Stack Overflow用户
提问于 2018-12-15 08:41:18
回答 1查看 1.2K关注 0票数 3

两者都允许您在内核地址中的特定指令上放置探测。

如果您注册了一个k探头,那么pre_handler将在实际函数之前执行,post_handler将在实际函数之后执行。

使用kret探测,您可以让entry_handler在实际函数之前执行,ret_handler在实际函数之后执行,它包含函数调用的返回值。

所以,与kret探针相比,使用k探针的优点是什么,因为kret探针具有k探针的特性加上函数的返回值。

EN

回答 1

Stack Overflow用户

发布于 2018-12-17 09:38:24

可以在任何指令上放置一个k探头,而不仅仅是在内核函数开始时的(当然,如果在给定的内核代码中允许使用)。K探头的处理程序在指令之前和之后运行。

Kret探测只对探测函数条目和出口有意义。Kret探头的处理程序在函数的入口和退出处运行,而不是在某些指令之前和之后运行,就像k探针处理程序一样。

此外,如果您不需要在函数出口处运行代码,那么对于探测函数来说,k探针可能是一个比kret探测更好的选择(尽管费特莱可能更好)。Kret探测干扰堆栈上函数的返回地址,以使处理程序得到执行。如果函数由于其他原因而崩溃或转储回溯跟踪,那么反跟踪可能包含kret探测内部的地址,而不是真正的返回地址,这可能会让人感到困惑。

https://www.kernel.org/doc/Documentation/kprobes.txt

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53790851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档