FreeBSD2026-01-31
本页面包含在 FressBSD 或 Linux 主机上设置 syzkaller 并对运行于虚拟机中的 amd64 FreeBSD 内核进行模糊测试的说明。
目前,syzkaller 可对运行在 bhyve、QEMU 或 GCE(Google Compute ……  [阅读更多]
Darwin/XNU2026-01-29
事实证明,在不使用 macOS 附带的任何专有内核扩展的情况下,从 XNU 源代码构建可用于模糊测试的虚拟机镜像异常困难。因此,本指南基于标准的 macOS 安装。不幸的是,苹果的 macOS 最终用户许可协议(EULA)使得此方法不适合在 Google C……  [阅读更多]
Akaros support2026-01-27
Testing2026-01-25
本文介绍了如何在内核中测试 Rust 代码。
有三种测试类型:
- KUnit 测试
#[test]测试- Kselftests
这些测试来自 Rust 文档中的示例。它们会被转换为 KUnit 测试。
这些测试可以通过 KUnit 运行。例如,在命令行……  [阅读更多]
RapidIO Subsystem Guide2026-01-23
作者
: Matt Porter
RapidIO 是一种高速的交换式互联结构,其特性主要面向嵌入式市场。RapidIO 支持通过交换网络进行内存映射 I/O,以及基于消息的事务。 RapidIO 拥有一个标准化的发现机制,与 PCI 总线标准类似,允许……  [阅读更多]
What is a good Linux Kernel bug?2026-01-02
我在 2006 年发现了我的第一个 Linux 内核漏洞,但它并不是一个特别好的漏洞。当时我只是复制我的同事 Ilja van Sprundel 正在做的一切,这足以找到一些东西。如果你看 Ilja 在 CCC 的视频,不寻常的漏洞(2006),你会明白为什么……  [阅读更多]
Tech talks2025-12-27
按时间倒序排列
syz-verifier2025-12-20
syz-verifier目前存在故障,无法进行编译/使用,请查看 待办事项列表中的问题。许多错误很容易被检测到:它们可能会导致断言失败、系统崩溃,或引发其他可被各种动态分析工具检测到的未定义行为。 然而,有一类被称为语义错误的错误,它们不会导致上述任何一……  [阅读更多]
syz-testbed2025-12-18
syz-testbed 是一个用于简化对不同 syzkaller 版本(或配置)进行性能对比评估的流程的工具。该工具会自动检出 syzkaller 仓库、构建它们、运行 syz-manager,并收集/汇总其结果。
syz-testbed 需要一个 JSO……  [阅读更多]
Prometheus metrics2025-12-08
syz-manager 指标暴露在 http 端点的 URI
/metrics路径。 目前从管理器导出的 Prometheus 指标包括syz_exec_total、syz_corpus_cover和syz_crash_total。可通过以下 Pr……  [阅读更多]
Strace2025-12-01
Syzkaller 可以配置为在 strace 监控下执行程序并捕获输出。
若
strace_bin被设置为strace二进制文件,syzkaller 将自动使用该strace二进制文件运行所有成功获取的重现用例。- 若 syz-manager 已 ……  [阅读更多]
How to set up syzkaller2025-11-29
针对 Linux 内核进行模糊测试的通用设置说明概述于此处。
其他内核的配置方法请参见: Akaros, FreeBSD, Darwin/XNU, Fuchsia, NetBSD, OpenBSD, Windows.
按照说明完成设置后,您应该能够运行
sy……  [阅读更多]
How to reproduce crashes2025-11-27
如果该漏洞是由 syzbot 报告的,首先需要构建该工具当时所用的内核版本。syzbot 会在报告里提供必要的信息:
Hello, syzbot found the following issue on: HEAD commit: ae58226……  [阅读更多]
Maintainer's Guide2025-11-24
我们保持线性历史记录,并在仓库设置中禁用合并提交(merge commit)。
拉取请求(PR)仅有两个选项:- 变基合并(Rebase and merge)
若 PR 中的所有提交已妥善整理/修复,优先选择此方式, 因其保留 PR 中的提交记录(将 PR 中 ……  [阅读更多]
- 变基合并(Rebase and merge)
Connecting several managers via Hub2025-09-30
syz-hub程序可用于将多个syz-manager连接在一起,并允许它们交换测试程序。使用
make hub编译syz-hub。然后按以下格式创建配置文件:{ "http": ":80", "rpc": ":55555",……  [阅读更多]
Headerparser2025-09-16
headerparser 是一个为 syzkaller 编写设备系统调用描述的辅助工具。
为了让 syzkaller 更智能地对设备节点开展模糊测试,你可以向它提供其预期的 ioctl 参数结构体类型信息。
然而,在某些情况下,参数结构体类型的数量可能很多,……  [阅读更多]
The afl-fuzz approach2025-08-28
AFL++ 是一款暴力模糊测试工具,它结合了一种极其简单但非常可靠的基于插桩技术完成覆盖率引导的遗传算法。AFL++ 采用一种改进的边覆盖率(edge coverage)度量,能够轻松捕捉到程序控制流中细微的、局部性的变化。
注:如果您想深入了解 AFL++……  [阅读更多]
Reproducible builds2025-07-31
通常希望使用相同工具集构建相同源代码是可重现的,即,输出始终完全相同。这使得能够验证二进制分发或嵌入式系统的构建基础设施未被篡改。这样也更容易验证源代码或工具的更改不会影响最终生成的二进制文件。
Building Linux with Clang/LLVM2025-07-26
本文档介绍如何使用 Clang 和 LLVM 工具构建 Linux 内核。
Linux 内核传统上一直使用 GNU 工具链(如 GCC 和 binutils)进行编译。持续的工作使得 Clang 和 LLVM 工具可作为可行的替代品。一些发行版,如 And……  [阅读更多]
Configuration targets and editors2025-07-24
本文件包含使用
make *config的一些帮助。使用
make help列出所有可能的配置目标。xconfig('qconf')、menuconfig('mconf')和 nconfig('nconf')程序也包含内嵌的帮助文本。请务必查看这些帮……  [阅读更多]