AFL模糊测试入门

基本概念 模糊测试简介 Fuzz Testing(Fuzzing,即模糊测试)是一种自动化的软件测试方法,其核心概念是自动生成随机输入到程序中,并监控程序异常(如崩溃、断言失败等),以发现可能的程序错误。 ...

2025年11月30日

AFL源码分析

前言 熟悉了 AFL 的使用之后,接下来应该分析一下 AFL 的源代码来理解 AFL 的 Fuzz 原理。关于 AFL 的源码分析已经有很多前辈珠玉在前了,所以也想过到底要不要写这篇文章。想了想还是打算动笔,也算是对自己学到的东西做总结。 ...

2025年11月30日

Go Fuzz

简介 传统的 AFL、libFuzzer 和 honggfuzz 主要支持用 C/C++ 语言开发的项目。但是现在随着 Rust、Go 等新兴编译型语言的兴起,相应的出现了对这些语言开发的项目进行 Fuzzing 的需求。因此,人们在基于传统的 Fuzz 工具的基础上,逐步为这些语言构建了 Fuzz 工具。 ...

2025年11月30日

libFuzzer浅探

简介 libFuzzer 是一个基于覆盖率引导的进化模糊测试引擎,旨在通过代码覆盖优化输入数据,从而发现潜在的程序漏洞。libFuzzer 以库的形式链接到目标代码中,专门用于测试指定的目标函数。通过动态地将 fuzz 输入提供给目标函数,libFuzzer 能够有效地引导测试过程,优化覆盖的路径,并且通常用于 C/C++ 项目的单元测试。 ...

2025年11月30日

Rust Fuzz

简介 传统的 AFL、libFuzzer 和 honggfuzz 主要支持用 C/C++ 语言开发的项目。但是现在随着 Rust、Go 等新兴编译型语言的兴起,相应的出现了对这些语言开发的项目进行 Fuzz 的需求。因此,人们在基于传统的 Fuzz 思想的基础上,逐步为这些语言构建了 Fuzz 工具。本文所要学习的 cargo-fuzz 正是如此。 ...

2025年11月30日

Syzkaller初探

简介 基本知识 Syzkaller 是 Google 的安全研究人员开发并维护的开源内核 Fuzz 工具,目前主要由 dvyukov 维护。它是使用 Go 语言编写的,也有少部分 C 代码,具有部署快速、使用简便的特点,同时还支持多种操作系统如:Linux、Android、Windows、openbsd、darwin 等系统。不过它支持最全面的还是 Linux 系统。 ...

2025年11月30日