cilium/ebpf

GitHub: cilium/ebpf

纯 Go 实现的 eBPF 库,提供 eBPF 程序的加载、编译、调试及内核挂载能力,外部依赖极少。

Stars: 7870 | Forks: 879

# eBPF [![PkgGoDev](https://pkg.go.dev/badge/github.com/cilium/ebpf)](https://pkg.go.dev/github.com/cilium/ebpf) ![HoneyGopher](https://static.pigsec.cn/wp-content/uploads/repos/cas/b7/b770e56b74deadf489cb4358eb6a340dd6a5fd9fb6b98587d4c12a232dbc50b6.png) ebpf-go 是一个纯 Go 库,提供了用于加载、编译和调试 eBPF 程序的工具。它的外部依赖极少,旨在用于长期运行的进程。 有关更广泛的 eBPF 生态系统中的互补项目,请参阅 [ebpf.io](https://ebpf.io)。 ## 快速入门 请查看我们的[快速入门]指南。 ## 获取帮助 社区会积极关注我们的 [GitHub Discussions](https://github.com/cilium/ebpf/discussions) 页面。在发起新话题之前,请先搜索现有的讨论。如果您刚刚起步,或者不确定这是否是库代码中的 bug,请避免在 bug 跟踪系统中提交 issue。 或者,如果您对项目有其他疑问,可以[加入](https://ebpf.io/slack) Slack 上的 [#ebpf-go](https://cilium.slack.com/messages/ebpf-go) 频道。请注意,该频道是临时性的,其历史记录超过一定时间后就会被清除,这对于以后遇到相同问题的其他人来说帮助较小。 ## 包 此库包含以下包: * [asm](https://pkg.go.dev/github.com/cilium/ebpf/asm) 包含一个基本的汇编器,允许您直接在 Go 代码中编写 eBPF 汇编指令。(如果您更喜欢用 C 编写 eBPF 程序,则无需使用此包。) * [cmd/bpf2go](https://pkg.go.dev/github.com/cilium/ebpf/cmd/bpf2go) 允许在 Go 代码中编译和嵌入用 C 编写的 eBPF 程序。除了编译 C 代码外,它还会自动生成用于加载和操作 eBPF 程序及 map 对象的 Go 代码。 * [link](https://pkg.go.dev/github.com/cilium/ebpf/link) 允许将 eBPF 附加到各种 hook。 * [perf](https://pkg.go.dev/github.com/cilium/ebpf/perf) 允许读取 `PERF_EVENT_ARRAY`。 * [ringbuf](https://pkg.go.dev/github.com/cilium/ebpf/ringbuf) 允许读取 `BPF_MAP_TYPE_RINGBUF` map。 * [features](https://pkg.go.dev/github.com/cilium/ebpf/features) 使用原生 Go 实现了等同于 `bpftool feature probe` 的功能,用于发现与 BPF 相关的内核特性。 * [rlimit](https://pkg.go.dev/github.com/cilium/ebpf/rlimit) 提供了一个便捷的 API,用于解除 5.11 之前内核上的 `RLIMIT_MEMLOCK` 限制。 * [btf](https://pkg.go.dev/github.com/cilium/ebpf/btf) 允许读取 BPF Type Format。 * [pin](https://pkg.go.dev/github.com/cilium/ebpf/pin) 提供了用于处理 bpffs 上被 pin 住的对象的 API。 ## 要求 * [上游支持](https://golang.org/doc/devel/release.html#policy)的 Go 版本 * Linux (amd64, arm64):CI 会在 kernel.org LTS 版本上运行。>= 4.4 应该可以运行,但不支持已 EOL(生命周期结束)的版本。 * Windows (amd64):CI 会在 Windows Server 2022 上运行。仅支持最新的 eBPF for Windows 版本。 * 其他架构尽最大努力支持。不支持 32 位架构。 ## 许可证 MIT ### eBPF Gopher eBPF honeygopher 基于 Renee French 设计的 Go gopher。
标签:Docker镜像, EVTX分析, Go, Linux内核, Ruby工具, SOC Prime, 安全渗透, 开发工具, 开发库, 日志审计, 系统编程