Rust 系列 03:深入理解 Kprobes 与 Kretprobes 2025年8月9日 | BPF Rust 本文地址:https://www.ebpf.top/post/03-lets-understand-kprobes-kretprobes 1. 工作原理 2. 注意事项 3. 实战示例 3.1 跟踪目标进程 PID 4. eBPF 程序逻辑:提取 HTTP 头 4.1 跟踪连接建立:kretprobe/__sys_accept4 4.2 跟踪数据读取…… 阅读全文
Rust 系列 02:理解 eBPF 核心构建单元 2025年8月9日 | BPF Rust 本文地址:https://www.ebpf.top/post/02-understanding-ebpf-core-building-blocks 1. BPF 程序类型与钩子点 2. BPF 验证器:安全守护者 3. BPF map:数据存储与通信 4. 辅助函数:内核 API 5. BTF & CO-RE:一次编写,到处运行 6. BPF 尾调用(…… 阅读全文
Rust 系列 01: eBPF 和 Rust 简介 2025年8月9日 | BPF Rust 本文地址:https://www.ebpf.top/post/01-intro-into-ebpf-and-rust 1. 什么是 eBPF? 2. 为什么选择 Rust? 3. 可用的 Rust 库 3.1 libbpf-rs 3.2 Aya 4. 为什么选择 libbpf-rs 4.1 什么是 libbpf? 4.2 CO-RE 的工作原理 4.3 为什么选择 libbpf-rs 4.5 为什么 libbpf-rs 适合我的场景 5. eBPF + Rust:架…… 阅读全文
eBPF 进阶:5种循环方式你都掌握了吗? 2024年11月17日 | BPF 本文地址:https://www.ebpf.top/post/bpf_five_loops 1. 前言 本文的主题是在 eBPF 技术中代码如何编写循环。 循环几乎是我们所能接触到的所有编程语言中的通用概念,但在 eBPF 中,它们可能要复杂一些。更不用说,截止到目前 eBPF 提供了5+ 种不同的循环方式 - 那么我们应该…… 阅读全文
BPF 调度器 sched_ext 实现机制、调度流程及样例 2024年8月30日 | BPF 本文地址:https://www.ebpf.top/post/bpf_sched_ext_dive_into Linux 进程调度器 CFS 调度器 EEVDF 调度器 通用调度器的窘境 BPF 调度扩展器 sched_ext 实现机制 新增1: SCHED_EXT 调度类 新增2:eBPF 自定义调度器函数 SCHED_EXT 调度类工作流程 调度队列 DSQ(Dispatch Queue…… 阅读全文
Linus 强势拍板 6.11 合入: BPF 赋能调度器终成正果 2024年6月30日 | BPF 本文地址:https://www.ebpf.top/post/bpf_sched_ext 1. 插拔调度器的萌芽【2004 年】 在 2004 年,Linux 社区的 Con Kolivas 提出了可插拔式调度器想法,旨在让内核中存在多个调度器,用户可在引导时选择。提交 patch 的工作原理是将大量代码拆分为 kernel/sched.c 公共部分和私有部分,同…… 阅读全文
LSM BPF 实践 2024年1月4日 | BPF Security 本文地址:https://www.ebpf.top/post/lsm_bpf_intro 1. 安全背景知识 2. 内核安全策略模块通用框架 LSM 2.1 LSM 框架介绍 2.2 LSM 架构 2.3 LSM 中的钩子函数 3. LSM BPF 3.1 BCC 实践 3.2 libbpf-bootstrap 框架实践 4. 总结 5. 附录:LSM 热修内核漏洞查找 hook 点过程 1. 安全背景知识 国际上对计算机安全概括了三个特…… 阅读全文
eBPF: 从 BPF to BPF Calls 到 Tail Calls 2022年9月24日 | BPF 本站地址:https://www.ebpf.top/post/bpf2pbpf_tail_call 本文作者:李兆龙 (已经取得得原作者授权) 原文地址:https://blog.csdn.net/weixin_43705457/article/details/123474244 1. 引言…… 阅读全文
揭秘 BPF map 前生今世 2022年1月9日 | BPF 本文地址:https://www.ebpf.top/post/map_internal 1. 前言 众所周知,map 可用于内核 BPF 程序和用户应用程序之间实现双向的数据交换, 为 BPF 技术中的重要基础数据结构。 在 BPF 程序中可以通过声明 struct bpf_map_def 结构完成创建,这其实带给我们一种错觉,感觉这和普通的 C 语言变量…… 阅读全文
【BPF 攻防系列-2】【译】恶意使用的 bpftrace 🤯 2021年12月18日 | BPF Offensive Security 本文地址:https://www.ebpf.top/post/offensive-bpf-bpftrace 本篇文章是我正在进行的关于 BPF 攻防系列 的一部分,用于学习 BPF 以了解相关的攻击和防御,请点击 “ebpf” 标签查看所有相关帖子。 我正在学习 BPF,以了解其使用将如何影响安全攻击、恶意软件和检测…… 阅读全文