Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
gustave — GUSTAVE 是一个针对嵌入式操作系统内核的模糊测试平台。它基于 QEMU 和 AFL(以及所有其 fork server 相关工具)。它允许像测试简单应用程序一样对操作系统内核进行模糊测试。 | Kitploit
工具/GitHubGitHub/airbus-seclab/gustave
嵌入式系统安全模糊测试二进制分析
GitHubairbus-seclab/gustave

gustave

GUSTAVE 是一个针对嵌入式操作系统内核的模糊测试平台。它基于 QEMU 和 AFL(以及所有其 fork server 相关工具)。它允许像测试简单应用程序一样对操作系统内核进行模糊测试。

查看仓库
203215年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

(c) Airbus 2021, sduverger

GUSTAVE - 嵌入式操作系统内核模糊测试器

它是什么 ?

GUSTAVE 是一个用于嵌入式操作系统内核的模糊测试平台。它基于 QEMU 和 AFL(以及所有它的 forkserver 同类工具)。它允许像对待简单应用程序一样对操作系统内核进行模糊测试。

得益于 QEMU,它是多平台的。可以将 GUSTAVE 视为 QEMU 内部的一个 AFL forkserver 实现,具有细粒度的目标检测能力。

支持哪些内核 ?

GUSTAVE 主要设计用于针对嵌入式操作系统内核。它可能不是对 Windows、Linux 或 macOS 中的大型复杂内核进行模糊测试的最佳工具。

然而,如果你有一个底层目标,它可以准备一两个应用程序,无需任何用户交互即可启动,那么尝试一下 GUSTAVE 可能会很有趣。

它是如何工作的 ?

AFL 项目中的 afl-fuzz 工具用于自动模糊测试你的目标。然而,AFL 无法直接对操作系统内核进行模糊测试,它期望其目标直接解析生成的测试用例。

简而言之,afl-fuzz 将运行集成了 GUSTAVE 的 QEMU 作为其目标。反过来,GUSTAVE 将处理 :

  • forkserver 同步
  • 将生成的测试用例转换为目标系统调用
  • 目标内核监控(执行覆盖率和内存访问)

与 AFL++ 项目中的 AFL/QEMU 用户模式类似,GUSTAVE 实现了 QEMU TCG IR 级别的二进制插桩,用于代码覆盖率。

然而,你可以选择禁用它,并重新构建目标内核代码,仅使特定部分进行代码覆盖率分析。不过,你需要在构建时注入 AFL 填充层来更新追踪位图。这是我们最初的方法(参见出版物)。

在现有解决方案中不太常见的是,GUSTAVE 不关心监控 kernel panics。我们将它们视为已管理的错误,并希望发现未触发任何警报的非法行为。

为此,GUSTAVE 依赖于一个 O(1) 面向字节的内存过滤位图来检测内核的 非法 访问。关于从内核角度定义什么是非法行为,可能存在很大争议。但在受限的嵌入式、高度确定性的环境中,你可能会觉得为固件定义 合法 内存区域并跟踪越界访问是合适的。

与现有解决方案相比如何 ?

存在类似的方法,例如:

  • PowerFL
  • Project Triforce
  • afl-unicorn
  • kAFL

GUSTAVE 的设计选择意味着以下差异:

  • 真正与目标无关(操作系统、架构),只要 QEMU 提供支持
  • 覆盖目标内核中实现的所有系统调用
  • 目标内部无需特定开发

然而,你仍需告诉 GUSTAVE:

  • 你的目标如何处理系统调用
  • 你的目标合法内存布局是什么

当前状态 ?

宿主机硬件

目前仅支持 x86 宿主机,由于许多工作环境都基于此架构,我们不认为这是一个限制因素。

该限制源于我们最初在 tcg-target 级别为 QEMU 加载/存储快速路径实现内存过滤后端的方式。最近的 TCGPlugin 内存回调架构可能是支持任何宿主机的替代方法。

客户机硬件

我们已实现并测试了 Intel x86 和 PowerPC 支持。GUSTAVE 的实现与架构无关。如果你能用 QEMU 运行目标,那么无需费力即可用 GUSTAVE 对其进行模糊测试。

我们提供了集成 GUSTAVE 的示例 Intel 440FX 和 PowerPC PREP 板卡。实现自己的板卡非常简单,只需包装给定架构的 MACHINE_INIT 函数即可。

我们还为 afl-gcc 添加了 x86 和 PowerPC GUSTAVE 插桩填充层支持,以防你不想进行 TCG 二进制插桩。

示例目标

我们提供了 POK 微内核的特定开发内容:

  • 包含简单应用程序的固件
  • 适用于 x86/PPC 的系统调用 ABI 生成器
  • 过滤位图

如何使用它 ?

你需要:

  • 构建 AFL
  • 构建集成 GUSTAVE 的 QEMU
  • 创建或生成过滤位图
  • 为你的目标编写 JSON 配置文件
  • 在终端中运行它

阅读 手册 以了解 POK 目标。

出版物

关于 GUSTAVE 的不同演讲资料可在 https://airbus-seclab.github.io/ 找到。

下载工具