首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >触发事件如何导致程序跳转到挂钩点?

触发事件如何导致程序跳转到挂钩点?
EN

Stack Overflow用户
提问于 2022-06-05 13:36:16
回答 3查看 55关注 0票数 0

我是eBPF的新手,我知道eBPF是事件驱动的,这意味着在注册钩点之后,钩子函数将在发生这种事件时被执行。所以我想知道程序怎么能跳到钩子函数?

EN

Stack Overflow用户

发布于 2022-06-09 21:03:43

(很好的答案:)作为对重新探测的补充:就像前面说过的那样,它们也可以用int3 (在x86上)代替指令;用gdb来观察是很好的。但是,它们在函数开始时就这样做了;调用的蹦床替换了返回地址。您可以很容易地在一个小的测试程序中看到这一点,它会打印带有或不使用重探针的堆栈。您会注意到堆栈无法正确读取(至少由backtrace(...)读取)。

通常情况下,复测会很好。但是,请记住,它们篡改堆栈(以一种意外的方式)。至少在使用g++时,当被探测的被调用方引发在调用方中处理的异常时,它们会中断异常处理。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72507777

复制
相关文章

相似问题

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