eBPF—捕获进程启动/退出事件 发表评论 上一次,我们尝试了用户空间自定义函数探测,里边会用到进程ID参数,那么实际使用场景下,我们可能需要能检测到进程的拉起和退出,今天就一起来实现下这个小功能。 阅读全文
eBPF—使用符号表offset探测函数调用 发表评论 上一次,我们通过uprobe实现一个对用户空间自定义程序的特定函数出入口进行代码注入和探测的方法,但它还有很多不完善的地方,比如需要提前准备好编译后的函数符号,同时生产环境产出通常也不带符号、产出的部署位置通常也不固定,给我们在实际场景中使用带来不便。本文就讲解下如何通过导出符号表、产出去符号,通过符号表的offset、类函数名、进程PID来进行用户自定义函数调用的探测,从而更方便直接在生产环境使用。 阅读全文
eBPF—使用uprobe探测用户程序函数调用 发表评论 上一次,我们通过kprobe实现一个简单的内核系统调用捕获,了解了如何在内核函数的出入口动态注入自定义代码,并通过ring buffer传递到用户空间。今天,我开始带大家通过uprobe实现一个对用户空间自定义程序的特定函数出入口进行代码注入和探测的方法。 阅读全文
eBPF—使用kprobe探测内核系统调用 发表评论 在前两篇文章中,我们了解了eBPF的基本知识。本文开始进行一次具体的实践,带大家通过kprobe实现一个简单的内核系统调用捕获,来了解如何在内核函数的出入口动态注入自定义代码。 阅读全文
eBPF Map—内核空间与用户空间数据传递的桥梁 发表评论 上一次,我们对eBPF有了基本的了解,并实现了一个简单的kprobe监听。本文我们从BPF Map开始,了解如何将在内核中抓取到的数据传递到用户空间。了解BPF Map是从0开始独立编写一个eBPF程序的必经之路。 阅读全文
eBPF—初探Linux内核扩展 2条回复 eBPF(extended Berkeley Packet Filter),即扩展的伯克利包过滤器,可谓 Linux 社区的新宠,Goole、Facebook、Twitter等公司都开始投身于 eBPF 技术的研究和应用。 阅读全文