Skip to content

Commit b9431d8

Browse files
authored
proofread syz_verifier.md (#322)
* proofread syz_verifier.md * change syz_verifier.md
1 parent 2bc1ad3 commit b9431d8

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

sources/syzkaller/syz_verifier.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
2-
status: translated
2+
status: proofread
33
title: "syz-verifier"
44
author: Syzkaller Community
55
collector: jxlpzqc
66
collected_date: 20240314
77
translator: Kozmosa
88
translated_date: 20250718
9+
proofreader: yinchunyuan
10+
proofread_date: 20250909
911
priority: 10
1012
link: https://github.com/google/syzkaller/blob/master/docs/syz_verifier.md
1113
---
@@ -21,19 +23,19 @@ link: https://github.com/google/syzkaller/blob/master/docs/syz_verifier.md
2123
许多测试套件旨在检测回归问题,但创建和维护测试用例,以及覆盖新功能都需要大量的工程投入。
2224

2325
*差分模糊测试*是一种自动化检测语义错误的方法,它将相同的输入提供给同一系统的不同实现,然后交叉比对由此产生的行为以确定它们是否一致。
24-
如果系统之间出现分歧,那么至少其中一个被认为是错误的
26+
如果系统之间出现分歧,那么其中至少有一个将被认为是错误的
2527

2628
`syz-verifier` 是一款差分模糊测试工具,它通过交叉比对程序在不同版本的 Linux 内核上的执行情况来检测语义错误。
2729

2830
`syz-verifier` 的架构如下图所示。
2931

3032
![Architecture overview](syz_verifier_structure.png)
3133

32-
`syz-verifier` 进程负责启动并管理带有待比对内核的虚拟机实例。它还会在这些虚拟机上启动 `syz-runner` 进程。主机和客户机之间的通信通过 RPC 完成。
34+
`syz-verifier` 进程负责启动并管理带有待比对内核的虚拟机实例。它还会在这些虚拟机上启动 `syz-runner` 进程。主机和客户机之间的通信由 RPC 完成。
3335

3436
`syz-verifier` 生成程序流并通过 RPC 持续发送给 `syz-runner`,而 `syz-runner` 负责启动 `syz-executor` 进程,并将程序转换为后者的输入。`syz-executor` 处理输入,这会在内核中触发一系列系统调用。然后,`syz-runner` 收集结果并将其发送回主机。
3537

36-
目前,结果包含了每个系统调用返回的错误码 (errno)。当 `syz-verifier` 收到来自所有内核针对特定程序的结果后,它会验证这些结果以确保它们完全相同。如果发现不一致,该程序会在所有内核上重新运行,以确保这种不一致不是偶发性的(例如,不是由某些后台活动或外部状态引起的)。如果这种不一致在所有重试中都出现,`syz-verifier` 会为该程序创建一份报告并将其写入持久化存储。
38+
现在,结果包含了每个系统调用返回的错误码 (errno)。当 `syz-verifier` 收到来自所有内核针对特定程序的结果后,它会验证这些结果以确保它们完全相同。如果发现不一致,该程序会在所有内核上重新运行,以确保这种不一致不是偶发性的(例如,不是由某些后台活动或外部状态引起的)。如果这种不一致在所有重试中都出现,`syz-verifier` 会为该程序创建一份报告并将其写入持久化存储。
3739

3840
# 如何使用 syz-verifier
3941

@@ -60,7 +62,7 @@ make verifier runner executor
6062

6163
# 如何解读结果
6264

63-
结果可以在 `workdir/results` 目录中找到
65+
可以在 `workdir/results` 目录中找到结果
6466

6567
`syz-verifier` 在一个程序中发现不一致时,它会为该程序创建一份报告。报告会列出每个交叉比对的内核为每个系统调用返回的结果,并高亮显示发现不一致的地方。系统调用按其在程序中出现的顺序列出。
6668

@@ -83,11 +85,10 @@ ERRNO mismatches found for program:
8385
...
8486
```
8587

86-
结果的顺序由传递配置文件时的顺序决定,因此 `Pool: 0` 报告的是使用 `kernel0.cfg` 创建的内核的结果,以此类推。
88+
结果的顺序由传递配置文件时的顺序决定,因此 `Pool: 0` 报告的是使用 `kernel0.cfg` 创建的内核的结果,以此类推。
8789

8890
[标志](/pkg/ipc/ipc.go#L82)可用于确定系统调用达到的状态:
8991
* `0` = 系统调用甚至未开始
9092
* `1` = 系统调用已开始
9193
* `3` = 系统调用已执行完毕
9294
* `7` = 系统调用被阻塞
93-
```

0 commit comments

Comments
 (0)