fuzzing-tutorial
Curated list of classic fuzzing books, papers about fuzzing at information security top conferences over the years, commonly used fuzzing tools, and resources that can help us use fuzzer easily.
https://github.com/secnotes/fuzzing-tutorial
Last synced: 13 days ago
JSON representation
-
2 Articles&Papers
-
ACM CCS
-
2022 ⤵
- SFuzz: Slice-based Fuzzing for Real-Time Operating Systems, 2022 - 基于切片的新型模糊器 SFuzz,用于检测 RTOS 中的安全漏洞。
- LibAFL: A Framework to Build Modular and Reusable Fuzzers, 2022 - **LibAFL**,这是一个构建模块化和可重用模糊器的框架,来自于谷歌的个人研究者,已开源 **[LibAFL](https://github.com/AFLplusplus/LibAFL)**。
- JIT-Picking: Differential Fuzzing of JavaScript Engines, 2022 - JavaScript 引擎的 Fuzz 测试。
- MC2: Rigorous and Efficient Directed Greybox Fuzzing, 2022 - 复杂性理论框架,将定向灰盒 Fuzz 测试作为一个 oracle 引导的搜索问题,一个较为学术型的 Fuzz 改进。
- DIFUZE: Interface Aware Fuzzing for Kernel Drivers, 2017 - 作者提出的一个 seed 生成方案。通过**优化种子生成**,同样也可以达到提高 Fuzzing 效率的效果。经过验证,[DIFUZE](https://github.com/ucsb-seclab/difuze) 相较于现有的 Fuzzer 在 ioctl() 接口上,确实存在着明显的优势。这也是显然的,DIFUZE 相较于其他的工具在 Fuzzing这样一个需要超大信息量的接口上提供了足够的信息,支撑它挖掘出大于其他工具几个数量级的信息量。
- Learning to Fuzz from Symbolic Execution with Application to Smart Contracts, 2019 - 作者提出了一种从符号执行中学习 Fuzzer 的新方法,将其应用于智能合约中。
- Matryoshka: Fuzzing deeply nested branches, 2019 - 灰盒Fuzz近年来取得了令人瞩目的进展,从基于启发式的随机变异进化到求解单个分支约束。但是,它们很难解决包含深度嵌套条件语句的路径约束。作者开发了一个工具 Matryoshka1 实现深层次嵌套路径的覆盖。
- Hawkeye: Towards a Desired Directed Grey-box Fuzzer, 2018 - Hawkeye 是一个定向 Fuzz 测试技术,本文提出 4 个定向型 Fuzzer 的特性并进行改进:考虑所有到达目标点的路径,不管长短;平衡静态分析的开销和实用性;合理分配能量;适应性变异策略。
- Directed Greybox Fuzzing, 2017 - 2017 年 Bohme 提出了 DGF 的概念,并且完成了名为 AFLGo 的工具,即定向 Fuzz 测试。
- SlowFuzz: Automated Domain-Independent Detection of Algorithmic Complexity Vulnerabilities, 2017
- SemFuzz: Semantics-based Automatic Generation of Proof-of-Concept Exploits, 2017 - 这是一种利用漏洞相关文本(如 CVE 报告和 Linux git 日志)来指导 PoC 攻击自动生成的新技术。
-
2023
- DSFuzz: Detecting Deep State Bugs with Dependent State Exploration, 2023 - 基于深度学习研究状态机与代码路径的关系,简言之就是一个针对状态机建模,以提高代码覆盖率。
- Fuzz on the Beach: Fuzzing Solana Smart Contracts, 2023 - Solana 是一种构建数字货币,如分布式工具的平台,而本文就是对这个平台诞生的智能合约的 Fuzz。
- HOPPER: Interpretative Fuzzing for Libraries, 2023 - 一项比较有意思的研究,一种新的 API Fuzz 工具,不需要像开发那样对 API 的用法了如指掌,而只需要知道 Hopper 如何使用。目前的局限性是只针对 C 而非 C++ 语言编写的库,[Hopper 开源地址](https://github.com/FuzzAnything/Hopper),[腾讯安全大数据实验室](http://www.baidu.com/link?url=aWqSg8WuLS7zTXIhjBtwYRtDkRYa9FBRmZWPvPgPJ6x5cZJO7SHTqM_YAqot7DF1LdMA6fwn0IJGpbWxnGHsfglRNqwnqNY5tH1I_LyyH0Gt78Po_-Jbb0O2e0dXJH7pyLfzX4YfzOgNJNNEcFS6AbdYK4AP_wRnMMHAXgZiv9zHGFa84udhi8xZfIY5pvkJnOP3Wi7-uzNkugatATRZ6K)。
- Profile-guided System Optimizations for Accelerated Greybox Fuzzing, 2023 - 优化 AFL 的持久模式和 Fork 系统调用,提升 Fuzz 效率,改进后的 [AFL/AFL++ 分支代码](AFL/AFL++ 分支代码)。
- NestFuzz: Enhancing Fuzzing with Comprehensive Understanding of Input Processing Logic, 2023 - 专门针对开源工具进行 Fuzz 的工具 [NestFuzz](https://github.com/fdu-sec/NestFuzz),仍然是基于 AFL 改进的工具,提出了一种新颖的数据结构,即输入处理树,它可以表示输入格式的整体结构。在 Fuzz 测试的第二阶段,NestFuzz 设计了一种级联依赖性感知突变策略。基于已识别的依赖关系,每当 NestFuzz 改变(字段或结构级别)输入时,它都会级联改变其他受影响的字段或子结构以维持结构有效性。
- SyzDirect: Directed Greybox Fuzzing for Linux Kernel, 2023 - 基于 Syzkaller 的改进,[SyzDirect](https://github.com/seclab-fudan/SyzDirect)。
- PyRTFuzz: Detecting Bugs in Python Runtimes via Two-Level Collaborative Fuzzing, 2023 - 顾名思义,就是一个用于检测 Python 运行时中的错误的 Fuzz 测试工具。它采用了两级模糊的方法,即单元测试级别的模糊和运行时级别的模糊,[PyRTFuzz 已开源](https://github.com/awen-li/PyRTFuzz)。
- Poster: Combining Fuzzing with Concolic Execution for IoT Firmware Testing, 2023 - 又是一个针对 **IoT 固件的 Fuzz** 工具。在以前固件 Fuzz 测试的基础上结合了符号执行。但是其限制仍然是目标固件要支持全系统仿真。因此,本篇论文仍然没有解决固件 Fuzz 测试的核心问题,即仿真。
-
2024
- LIFTFuzz: Validating Binary Lifters through Context-aware Fuzzing with GPT, 2024 - 所谓的 binay lifter,就是将二进制转化为统一的中间语言(IR),这是在逆向工程中常见的一种方式,LiftFuzz 是一个利用指令上下文感知 Fuzz 测试来验证 binary lifeter 的新框架。LiftFuzz 利用汇编语言模型来学习指令之间的交互,并利用这些知识生成测试用例,说要开源,但是一直没有[开源](https://github.com/zyt755/LIFTFuzz)。
- https://github.com/zyt755/LIFTFuzz, 2024 - 浙江大学张明雪团队,设计了一种新的解决方案 FuzzCache,它引入了一种基于软件的数据缓存机制,通过将数据库和网络请求中的数据存储到缓存中,规避了重复且昂贵的数据读取操作,也就是说 FuzzCache 用于提高 Web Fuzz 的效率。[FuzzCache](https://github.com/secureweb/Fuzzcache) 已开源。
- RANsacked: A Domain-Informed Approach for Fuzzing LTE and 5G RAN-Core Interfaces, 2024 - 针对 LTE/5G 空口平台 RAN-Core 的 Fuzz,其中衍生的 [ASNFuzzGen](https://github.com/fics/asnFuzzgen) 已开源,这种针对蜂窝网的研究过于学术化,工业界关注不多。
- RIoTFuzzer: Companion App Assisted Remote Fuzzing for Detecting Vulnerabilities in IoT Devices, 2024 - 利用设备配套的 App,对 IoT 设备进行 Fuzz。其实跟 IoT 关系不大,主要思路就是利用 App 逆向,找到设备远控等数据包的格式,生成对应的测试用例。论文对应的[脚本](https://github.com/kzLiu2017/RIoTFuzzer)已开源。
- On Understanding and Forecasting Fuzzers Performance with Static Analysis, 2024 - 将编译时提取的静态分析特征与各种 Fuzz 测试技术的性能结果相关联,为特定程序提出定制的 Fuzz 测试器配置。
- FOX: Coverage-guided Fuzzing as Online Stochastic Control, 2024 - 提高覆盖引导的边缘覆盖率算法,当前算法已在 AFL++ 上实现,已[开源](https://github.com/FOX-Fuzz/FOX),这种针对 AFL 算法改进的论文近些年层出不穷,有些还是值得一看。
- Prompt Fuzzing for Fuzz Driver Generation, 2024 - 通过迭代地生成模糊驱动来探索未发现的库代码,PromptFuzz 的核心思想就是通过覆盖指导指导 LLM 生成所需的模糊驱动,并利用程序错误预言保证其有效性,使用了 ChatGPT prompt 生成 Harness,但是其引入了三种新的后端处理思路来将 LLM 生成的错误harness 进行剔除。
- DarthShader: Fuzzing WebGPU Shader Translators & Compilers, 2024 - 针对 Web GPU 着色器翻译器和编译器的 Fuzz 测试项目,[darthshader](https://github.com/wgslFuzz/darthshader) 已开源,开箱即用。
- Collapse Like A House of Cards: Hacking Building Automation System Through Fuzzing, 2024 - 针对楼栋自动化系统 BAS 的 Fuzz 测试,没什么好说的,就是一个比较新颖的领域。
- OSmart: Whitebox Program Option Fuzzing, 2024 - OSmart 是一个自动推断程序的选项,并组合各种选项,进行 Fuzz 的方案,通过分析程序的选项处理逻辑,可以更智能地生成测试用例,可惜暂时没有看到开源。
- Program Environment Fuzzing, 2024 - 论文将程序运行所需要的环境都视为外部入口,进行 Fuzz 测试,对整个交互过程进行全面覆盖,包括网络服务器、图形界面应用、编译器等在内的任何 Linux 用户模式软件,[EnvFuzz](https://github.com/GJDuck/EnvFuzz) 已开源,几个月前曾尝试过这个工具,可以实现一键 Fuzz,但是分析崩溃需要耗费大量时间。
- ProphetFuzz: Fully Automated Prediction and Fuzzing of High-Risk Option Combinations with Only Documentation via Large Language Model, 2024 - 提出了一种基于大型语言模型(LLM)的全自动工具 ProphetFuzz,用于预测应用程序的高风险选项组合并进行 Fuzz 测试。[ProphetFuzz](https://github.com/NASP-THU/ProphetFuzz) 已开源。
- Leveraging Binary Coverage for Effective Generation Guidance in Kernel Fuzzing, 2024 - 一种使用内核二进制覆盖率反馈对内核进行 Fuzz 的方案,工具原型 KBinCov 未见开源,作者通过集成在 Syzkaller 中,对比原始的 kov。
- Toss a Fault to BpfChecker: Revealing Implementation Flaws for eBPF runtimes with Differential Fuzzing, 2024 - 论文提出了一个差分 Fuzz 测试框架 BpfChecker,用于检测 eBPF 运行时中的实现缺陷。它利用 eBPF 程序作为输入,对各种 eBPF 运行时中的关键状态进行差分测试以发现实现缺陷,获得了 80 万刀的奖励 已开源。
- No Peer, no Cry: Network Application Fuzzing via Fault Injection, 2024 - 通过故障注入,迫使目标进程进入一种奇怪的状态,进行 Fuzz。这项研究似乎拓展了故障注入的概念,说实话,看了一段内容,还是没太理解研究中所描述的故障注入,看起来是进行一些数据包微调。[Fuzztruction-Net](https://github.com/Fuzztruction/Fuzztruction-net-experiments) 原型已开源。
- Fuzz to the Future: Uncovering Occluded Future Vulnerabilities via Robust Fuzzing, 2024 - 确实是一项开创性的研究,通过二进制修补绕过崩溃代码,继续 Fuzz,虽然思想我们很容易理解,但是之前未见到自动化工具,[FlakJack](https://github.com/sefcom/flakjack) 就这么实现了,已开源。
- CountDown: Refcount-guided Fuzzing for Exposing Temporal Memory Errors in Linux Kernel, 2024 - 为了主动触发与引用计数相关的 UAF 错误,论文提出了一种新型的引用计数引导内核模糊器 CountDown。CountDown 从内核执行中收集各种引用计数操作,并根据常访问的引用计数重塑系统调用关系。
- Fuzzing JavaScript Engines with a Graph-based IR, 2024 - 基于图的中间表示 FlowIR 直接将 JS 控制流和数据流表示为变异目标,即针对 JS 引擎的 Fuzz。
- CrossFire: Fuzzing macOS Cross-XPU Memory on Apple Silicon, 2024 - 论文提出了 CrossFire,这是第一个针对 Apple Silicon XPU 的 Fuzz 测试工具。
-
2025
- RVISmith: Fuzzing Compilers for RVV Intrinsics, 2025 - 针对 RVV 内部函数 RVI 的 Fuzz 工具。[RVISmith 开源链接](https://github.com/yibo2000/RVISmith)。
- Fuzzing Processing Pipelines for Zero-Knowledge Circuits, 2025 - 首个针对零知识证明的 Circuit (电路是指一种逻辑或计算模型,用于定义验证一个问题所需的步骤和逻辑运算。) 进行系统性 Fuzz 测试的技术,已在 [Circuzz](https://github.com/Rigorous-Software-Engineering/circuzz) 初步实现。
- Error Messages to Fuzzing: Detecting XPS Parsing Vulnerabilities in Windows Printing Components, 2025 - 检测 Windows 打印组件中的 XPS 解析漏洞。
- SyzSpec: Specification Generation for Linux Kernel Fuzzing via Under-Constrained Symbolic Execution, 2025 - SyzSpec,通过符号执行生成更精准的系统调用描述,将 Syzkaller 手动编写的系统调用描述文件自动化,论文来自[郝宇 ](https://zhyfeng.github.io/),就职于华为。
- SyzParam: Incorporating Runtime Parameters into Kernel Driver Fuzzing, 2025 - 通过静态分析提取不同驱动程序的运行时参数。
- Intent-aware Fuzzing for Android Hardened Application, 2025 - 基于 eBPF 的 AHA-Fuzz,首个针对 Android 应用的 Intent 感知灰盒 Fuzz 测试框架。[已开源](https://github.com/S2-Lab/AHA-fuzz)。
- A Qualitative Analysis of Fuzzing Tool Usability and Challenges, 2025 - 本研究通过对来自不同领域的 Fuzz 测试用户进行 18 次半结构化访谈,探究了 Fuzz 测试的人性化一面。这些访谈探讨了参与者在 Fuzz 测试方面的工作流程、遇到的挫折和期望,为下一代 Fuzz 测试工具提供参考。
- Protocol-Aware Firmware Rehosting for Effective Fuzzing of Embedded Network Stacks, 2025 - 通过**固件网络协议**的模拟,相关工具 Pemu 可以透明地生成封装 Fuzz 测试数据的有效网络数据包,从而使 Fuzz 测试输入能够直接流入固件逻辑的更深层。
- ConTest: Taming the Cyber-physical Input Space in Fuzz Testing with Control Theory, 2025 - 没有论文材料。
- DriveFuzz: Enhancing CPU Fuzzing via Diverse Instruction Construction, 2025 - 没有论文材料。
- PromeFuzz: A Knowledge-Driven Approach to Fuzzing Harness Generation with Large Language Models, 2025 - 没有论文材料。
-
-
Blogs
-
固件
- AFL漏洞挖掘技术漫谈(一):用AFL开始你的第一次Fuzzing
- AFL漏洞挖掘技术漫谈(二):Fuzz结果分析和代码覆盖率
- 深入分析 afl / qemu-mode(qemu模式) / afl-unicorn 编译及安装存在的问题以及相应的解决方案
- AFL二三事——源码分析(上篇)
- AFL二三事——源码分析(下篇)
- IoT 设备网络协议 Fuzz 测试工具booFuzz实战
- Fuzz实战之libFuzzer
- 工控网络协议 Fuzz 测试:用peach对modbus协议进行 Fuzz 测试
- Peach原理简介与实战:以Fuzz Web API为例
- 内核漏洞挖掘技术系列(1)——trinity
- 内核漏洞挖掘技术系列(2)——bochspwn
- 内核漏洞挖掘技术系列(3)——bochspwn-reloaded(1)
- 内核漏洞挖掘技术系列(3)——bochspwn-reloaded(2)
- 内核漏洞挖掘技术系列(4)——syzkaller(1) - syzkaller源码分析系列文章
- Syzkaller入门知识总结 - syzkaller 入门
- 从0开始Fuzzing之旅: 使用Syzkaller进行Linux驱动漏洞挖掘 - Android 模拟器内核
- 从0到1开始使用syzkaller进行Linux内核漏洞挖掘 - Linux 内核
- 基于 Unicorn 和 LibFuzzer 的模拟执行 Fuzzing
- IoT固件Rehosting综述 - **一篇相当不错的固件模拟综述**
- AFL二三事——源码分析(上篇)
- AFL二三事——源码分析(下篇)
- 深入探究文件Fuzz工具之Peach实战
- 内核漏洞挖掘技术系列(1)——trinity
- 内核漏洞挖掘技术系列(2)——bochspwn
- 内核漏洞挖掘技术系列(3)——bochspwn-reloaded(1)
- 内核漏洞挖掘技术系列(3)——bochspwn-reloaded(2)
- 内核漏洞挖掘技术系列(4)——syzkaller(1) - syzkaller源码分析系列文章
- Fuzzing a Pixel 3a Kernel with Syzkaller - Android 手机
-
-
Books
- The Fuzzing Book
- Fuzzing for Software Security Testing and Quality Assurance, 2018 - 本书将 Fuzz 测试的思想引入软件开发生命周期,事实上很多高效的 Fuzzing 测试往往在开发阶段就已经考虑到,该书探讨了 Fuzz 工具的发展,不仅包括一些新兴开源工具,也涵盖诸多商用的 Fuzzer,如何为软件开发项目选择合适的 Fuzzer 也是本书的主题之一。
- The Fuzzing Book, 2019 - 该书以原理+代码练习为基础,从 0 到 1 完成一个 Fuzz 测试框架,结合实际的练习,如果想编写自己的测试框架,可以参考本书。
-
Contribute
-
固件
-
-
IEEE S&P
-
2019 ⤵
- CollAFL: Path Sensitive Fuzzing, 2018 - 对 AFL 中的 coverage inaccuracy 和 seed **选择策略做了改进**,改进后的工具称为 [CollAFL](https://github.com/batgui/collafl)。
- T-Fuzz: Fuzzing by program transformation, 2018 - 论文开发的 [T-Fuzz](https://github.com/HexHive/T-Fuzz) 通过**去掉 santiy check 来提高覆盖率**。T-Fuzz 利用覆盖率来引导产生输入。当不能访问到新的路径时,T-Fuzz会去掉 check,以保证 Fuzz 能继续进行,发现新的路径和 bug。
- Skyfire: Data-Driven Seed Generation for Fuzzing, 2017
-
2020
- IJON: Exploring Deep State Spaces via Fuzzing, 2020 - 通过改造 AFL 探测程序的空间状态,发现更多程序行为,并拿游戏"超级玛丽"来作演示。 作者对超级玛丽作了修改,使所有的键盘命令都可以从标准输入中读取,并且马里奥只能不停地向右跑,只要停下来就死掉,这个设计主要是为节省时间。
- Krace: Data Race Fuzzing for Kernel File Systems, 2020 - 介绍了 KRACE,一个端到端的模糊框架,它将并发方面引入基于覆盖引导的文件系统 Fuzzing 中。
- Pangolin:Incremental Hybrid Fuzzing with Polyhedral Path Abstraction, 2020 - 混合 fuzing 结合了符号执行与 Fuzz 测试的优点,已经逐渐成为基于覆盖引导的 Fuzzing 技术的重要发展方向之一。尽管在实现高覆盖率方面取得了巨大进展,但众所周知,混合模糊仍然存在效率问题。 将约束求解后对信息重用起来,是有可能实现 Constrained Mutation 和 Guided Constraint Solving,从而**提升混合 Fuzz 效率**。
- RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization, 2020 - 开发了一种**二进制重写工具 retrowrite** 用于支持 AFL 和 ASAN,并证明它可以在保持精度的同时达到编译器级的性能。使用 retrowriter 重写用于覆盖引导的二进制文件在性能上与编译器检测的二进制文件相同,性能比基于 defaultQEMU 的检测高出 4.5 倍。该工具已开源:https://github.com/HexHive/retrowrite/,同时限制非常多,比如目标二进制只能是 x86_64 架构,必须包含符号表等。
-
2021
- DiFuzzRTL: Differential Fuzz Testing to Find CPU Bugs, 2021 - 一种专门发现 CPU RTL 漏洞的 Fuzz 工具, [DiFuzzRTL](https://github.com/compsec-snu/diFuzz-rtl) 已开源。
- StochFuzz: Sound and Cost-effective Fuzzing of Stripped Binaries by Incremental and Stochastic Rewriting, 2021 - 一种新的 Fuzz 技术,被称为 incremental and stochastic rewriting ,优于 afl-unicorn,利用更低的开销,提高了**黑盒二进制 Fuzzing** 的效率,相关工具已开源:[ZhangZhuoSJTU](https://github.com/ZhangZhuoSJTU)/**[StochFuzz](https://github.com/ZhangZhuoSJTU/StochFuzz)**。
- NtFuzz: Enabling Type-Aware Kernel Fuzzing on Windows with Static Binary Analysis, 2021 - 一个静态二进制分析器,可以自动推断出 Windows 系统调用,该分析器被整合到 [SoftSec-KAIST](https://github.com/SoftSec-KAIST)/**[NTFuzz](https://github.com/SoftSec-KAIST/NTFuzz)**,一个 **Windows 系统调用** Fuzzing 框架,首次将静态二进制分析技术与 Windows 内核的 Fuzzing 技术相结合。
- Diane: Identifying Fuzzing Triggers in Apps to Generate Under-constrained Inputs for IoT Devices, 2021 - 通过使用网络流量和控制目标物联网设备的应用程序的混合分析来解决输入生成问题 ,工具名为 [ucsb-seclab](https://github.com/ucsb-seclab)/**[diane](https://github.com/ucsb-seclab/diane)**,已开源, 与 IoTFuzzer 较为相似,弥补了 IoTFuzzer 的一些缺点。
- One Engine to Fuzz 'em All: Generic Language Processor Testing with Semantic Validation, 2021 - 提出了一个通用 Fuzzing 框架([s3team](https://github.com/s3team)/**[Polyglot](https://github.com/s3team/Polyglot)** ),目的是为了探索不同编程语言的处理器而生成高质量的 Fuzz 测试用例,实现各个语言之间的通用性和适用性。 相比于当前最先进的通用型 Fuzz:包括基于变异的 Fuzzer **AFL** 以及混合型 Fuzzer **QSYM** 和基于语法的 Fuzzer **Nautilus** 能够更有效地生成高质量的测试用例。
-
2022
- JIGSAW: Efficient and Scalable Path Constraints Fuzzing, 2022 - 将路径约束编译为本地函数,提高分支翻转率的 Fuzz 工具,工具已开源 [JIGSAW](https://github.com/R-Fuzz/jigsaw)。
- PATA: Fuzzing with Path Aware Taint Analysis, 2022 - 这篇论文主要讨论了在 Fuzzing 中**路径感知的污点分析技术**(path-aware taint analysis)的应用。
- FuzzUSB: Hybrid Stateful Fuzzing of USB Gadget Stacks, 2022 - 混合Fuzzing技术在USB上的应用。
- Effective Seed Scheduling for Fuzzing with Graph Centrality Analysis, 2022 - 使用图论中心性分析进行 Fuzz 测试的有效种子调度,此方案被称为 [K-Scheduler](https://github.com/Dongdongshe/K-Scheduler),已开源。
- BEACON: Directed Grey-Box Fuzzing with Provable Path Pruning, 2022 - 一种称之为 BEACON 的**定向 Fuzz 测试**。这是基于 LLVM 灰盒 Fuzzer,需要将输入源代码编译为 LLVM 位代码,进行静态分析。分析后插桩,LLVM 位代码被编译为可执行二进制文件,可以与各种模糊引擎集成。未见开源。
-
2023
- ODDFuzz: Discovering Java Deserialization Vulnerabilities via Structure-Aware Directed Greybox Fuzzing, 2023 - 一种针对 Java 反序列化漏洞的新颖混合解决方案 ODDFuzz,尚未开源。
- Finding Specification Blind Spots via Fuzz Testing, 2023 - 形式化验证与 Fuzz 测试,一篇学术型论文,非我擅长的领域,感兴趣可以阅读一下。
- Toss a Fault to Your Witcher: Applying Grey-box Coverage-Guided Mutational Fuzzing to Detect SQL and Command Injection Vulnerabilities, 2023 - 首个使用 AFL Fuzz Web 应用程序的工具,它利用突变 Fuzz 测试来探索 Web 应用程序和故障升级来检测命令和 SQL 注入漏洞。[Witcher](https://github.com/sefcom/Witcher) 已开源。
-
2024
- AFGen: Whole-Function Fuzzing for Applications and Libraries, 2024 - AFGen(全函数 Fuzz 测试应用和库)是一种用于应用程序和库的全函数 Fuzz 测试工具。它是一种基于符号执行的 Fuzz 测试技术,通过符号执行进行静态分析,[代码即将开源](https://github.com/Marsman1996/AFGen)。
- Chronos: Finding Timeout Bugs in Practical Distributed Systems by Deep-Priority Fuzzing with Transient Delay, 2024 - Chronos的目标是提供一个实用的工具,帮助开发者发现并解决分布式系统中的超时错误。通过深度优先 Fuzz 测试和瞬时延迟模拟,与上面一篇论文一样,感觉较为学术化。
- DY Fuzzing: Formal Dolev-Yao Models Meet Cryptographic Protocol Fuzz Testing, 2024 - 一个针对密码学算法库进行 Fuzz 测试的模型,如针对 OpenSSL/wolfSSL,已经有基于 DY 模型实现了 **TLS Fuzz** 的工具,[tlspuffin](https://github.com/tlspuffin/tlspuffin)。
- LABRADOR: Response Guided Directed Fuzzing for Black-box IoT Devices, 2024 - 又是一个针对固件黑盒 Fuzz 的工具。相比 SNIPUZZ、BOOFuzz 和 FIRM-AFL 能够发现更多的漏洞,同时是 SaTC 发现的漏洞的 8.57 倍。与以前工作不同的是,**LABRADOR 似乎不需要进行固件仿真**,而是在真机上进行 Fuzz 测试,通过网络响应来推断固件的执行跟踪,并推导出测试的代码覆盖率,未见开源。
- Predecessor-aware Directed Greybox Fuzzing, 2024 - 属于定向 Fuzz 测试的范畴,提出了一种 Predecessor-aware Directed Greybox Fuzzing (PDGF) 方法,并将 DGF 视为一种路径搜索问题,是一种结合了先前路径感知的灰盒 Fuzz 测试技术,较为学术。
- SATURN: Host-Gadget Synergistic USB Driver Fuzzing, 2024 - 针对 USB 协议的 Fuzz 工具。工具已开源:[Saturn](https://github.com/THU-WingTecher/Saturn)。
- SoK: Prudent Evaluation Practices for Fuzzing, 2024 - 一篇来自*德国CISPA亥姆霍兹信息安全中心*的有趣论文。在 2018~2023 年安全顶会公开发表的 289 篇有关 Fuzzing 的论文中,74% 的论文公开了源码,60% 的论文工程代码受到了评估,**各项 Fuzzing 研究论文发现的 CVE 的数量和质量存疑**,并表达观点,CVE 不是主要影响 Fuzzer 质量的标准。作者对其中的 8 篇进行深入评估,**并对这些论文的研究结果提出质疑**。让人遗憾的是,这 8 篇数据有问题的论文均来自国内。包括 *深圳大学、中国科学院大学、上海交大、奇安信&天津大学,国防科大、华盛顿州立大学(留学生)、中科学信工所、中国科学院大学国家计算机网络入侵防护中心*。
- SyzTrust: State-aware Fuzzing on Trusted OS Designed for IoT Devices, 2024 - 针对 TEE 设计的 Fuzz 测试工具,基于 Syzkaller,在开发板上测试,因此 TEE 需要能够运行在开发板环境上,作者来自浙江大学,工具已开源,[SyzTrust](https://github.com/SyzTrust/syztrust)。
- Titan: Efficient Multi-target Directed Greybox Fuzzing, 2024 - 一篇较为学术的研究定向 Fuzz 测试的沦陷。
- To Boldly Go Where No Fuzzer Has Gone Before: Finding Bugs in Linux' Wireless Stacks through VirtIO Devices, 2024 - 一种基于 VirtIO 设备驱动程序的新型 Fuzz 测试工具 [VirtFuzz](https://github.com/cyruscyliu/virtFuzz-evaluation),从真实设备收集数据,在虚拟环境进行 Fuzz。
-
2025
- FirmRCA: Towards Post-Fuzzing Analysis on ARM Embedded Firmware with Efficient Event-based Fault Localization, 2025 - FirmRCA,这是一个专为**嵌入式固件**量身定制的实用故障定位框架。[代码已开源](https://github.com/NESA-Lab/FirmRCA),基于Unicorn模拟器的 hook 机制、利用 Capstone 反汇编。
- Predator: Directed Web Application Fuzzing for Efficient Vulnerability Validation, 2025 - Predator,这是一个配备选择性动态插桩的定向 Fuzz 测试框架,用于 **Web 应用程序**漏洞检测和验证。暂未见开源。
- RGFuzz: Rule-Guided Fuzzer for WebAssembly Runtimes, 2025 - 一个用于 WebAssembly 运行时的差分 Fuzz 测试工具 RGFuzz。备注:WebAssembly(Wasm)是一种新型的、可移植的、高效的二进制指令格式。[工具已开源](https://github.com/kaist-hacking/RGFuzz)。
-
-
NDSS
-
2020 ⤵
- HFL: Hybrid Fuzzing on the Linux Kernel, 2020 - 新兴混合 Fuzz 工具。据作者所属,HFL 代码覆盖率分别比 Moonshine 和 Syzkaller 高出15%和26%,并发现 20+ 个内核漏洞。该工具好像没有开源。
- HotFuzz: Discovering Algorithmic Denial-of-Service Vulnerabilities Through Guided Micro-Fuzzing, 2020 - 这是一个用于自动发现 Java 库中 AC (算法复杂性)漏洞框架 。
- Not All Coverage Measurements Are Equal: Fuzzing by Coverage Accounting for Input Prioritization, 2020 - 一种新的模糊输入优化方案,发现了 20+ 0 day 漏洞,名为 [TortoiseFuzz](https://github.com/TortoiseFuzz/TortoiseFuzz)。
- PeriScope: An Effective Probing and Fuzzing Framework for the Hardware-OS Boundary, 2019 - 名为 PeriScope 的 Fuzz 工具,主要针对内核与硬件的边界部分,该工具好像没有开源。
- INSTRIM: Lightweight Instrumentation for Coverage-guided Fuzzing, 2018 - 学术研究,探讨了覆盖导向模糊的轻量级检测方法。
- Enhancing Memory Error Detection for Large-Scale Applications and Fuzz Testing, 2018 - 对内存错误检测算法的研究。
- DELTA: A Security Assessment Framework for Software-Defined Networks, 2017 - 对 SDN 设计的安全评估框架。
-
2021
- Favocado: Fuzzing the Binding Code of JavaScript Engines Using Semantically Correct Test Cases, 2021
- WINNIE : Fuzzing Windows Applications with Harness Synthesis and Fast Cloning, 2021 - gatech/winnie) 系统,包含两个组件:可从二进制文件中自动合成工具的生成器,以及一个高效的 Windows forkserver。 对比工具: WinAFL 。
- PGFUZZ: Policy-Guided Fuzzing for Robotic Vehicles, 2021
- Reinforcement Learning-based Hierarchical Seed Scheduling for Greybox Fuzzing, 2021
- Favocado: Fuzzing the Binding Code of JavaScript Engines Using Semantically Correct Test Cases, 2021 - 对 **JS 引擎**中绑定层代码进行 Fuzzing 的工具:[Favocado](https://github.com/favocado/Favocado)。作者在对在4个不同的JavaScript运行时系统Fuzz时,发现了61个新的bug,其中33个是安全漏洞,13个已经被CVE收录。
- WINNIE : Fuzzing Windows Applications with Harness Synthesis and Fast Cloning, 2021 - gatech/winnie) 系统,包含两个组件:可从二进制文件中自动合成工具的生成器,以及一个高效的 Windows forkserver。 对比工具: WinAFL 。
- PGFuzz: Policy-Guided Fuzzing for Robotic Vehicles, 2021
- Reinforcement Learning-based Hierarchical Seed Scheduling for Greybox Fuzzing, 2021 - 通过引入多级覆盖和设计了基于强化学习的分层调度器,保留更多有价值的种子。即更加细粒度衡量代码覆盖率和更加合理的种子调度策略。
-
2022
- Semantic-Informed Driver Fuzzing Without Both the Hardware Devices and the Emulators, 2022 - 提出了一种无设备驱动程序 Fuzz 测试系统 DR .Fuzz,它不需要硬件设备对驱动程序进行 Fuzzing。DR .Fuzz 的核心是一种**语义通知机制**,它有效地生成输入以正确构造相关数据结构,以在驱动初始化时通过“验证链”,从而实现后续的无设备驱动程序 Fuzz 测试。
- MobFuzz: Adaptive Multi-objective Optimization in Gray-box Fuzzing, 2022 - 一种用于多目标优化 (MOO) 的灰盒模糊器,称为 MobFuzz。
- FirmWire: Transparent Dynamic Analysis for Cellular Baseband Firmware, 2022 - [FirmWire](https://github.com/FirmWire/FirmWire),是一个支持三星和联发科的全系统**基带**固件分析平台。它支持对基带固件映像进行 Fuzz 测试、模拟和调试。
- EMS: History-Driven Mutation for Coverage-based Fuzzing, 2022 - 一种新颖的变异方案,通过分析历史测试用例,发现一些已经尝试过的用例仍有可能触发新的独特路径。提出了一种轻量级、高效的 Probabilistic Byte Orientation Model(PBOM)模型,基于此提出了一个新的历史驱动的变异框架 EMS,发现了多个新的 CVE。
- Context-Sensitive and Directional Concurrency Fuzzing for Data-Race Detection, 2022 - 一个名为 CONZZER 的新型并发 Fuzz 测试框架,以有效地探索线程交错并检测难以发现的**数据竞争**。
- datAFLow: Towards a Data-Flow-Guided Fuzzer, 2022 - DATAFLOW,这是一个由轻量级数据流分析驱动的灰盒 Fuzz 工具。
-
2023
- Assessing the Impact of Interface Vulnerabilities in Compartmentalized Software, 2023 - 针对上下文隔离的 API 接口(CIV,这是作者定义的一个概念,主要是指沙箱等隔离环境,应用划分、隔离后,应用的不同部分之间在交互时的控制和数据依赖关系,会在 interface 引入新的漏洞)进行 Fuzzing 的方案。Github 文档描述非常详细,[已开源](https://github.com/confFuzz/confFuzz),当前作者已针对 Okular/ImageMagick/Apache/exif 等诸多软件进行了 Fuzz 测试。
- FUZZILLI: Fuzzing for JavaScript JIT Compiler Vulnerabilities, 2023 - 谷歌Project Zero安全团队开发的针对 Javascript JIT 引擎进行 Fuzzing 的工具。[已开源](https://github.com/googleprojectzero/fuzzilli)。
- No Grammar, No Problem: Towards Fuzzing the Linux Kernel without System-Call Descriptions, 2023 - 不用像 Syzkaller 那样编写复杂的系统调用描述,即可对内核进行 Fuzzing 的工具。[FuzzNG 已开源](https://github.com/BUseclab/FuzzNG)。
- DARWIN: Survival of the Fittest Fuzzing Mutators, 2023 - 来自于上海交通大学的文章,改进优化 AFL 变异算法,通过实验证明比原生 AFL 多出 66% 的安全漏洞,[已开源](https://github.com/TUDA-SSL/DARWIN),很好奇为啥叫 DARWIN 的软件或者工具这么多🐶。
- LOKI: State-Aware Fuzzing Framework for the Implementation of Blockchain Consensus Protocols, 2023 - 针对区块链共识协议实现模糊测试的方法,来自清华大学,未见开源。
- OBSan: An Out-Of-Bound Sanitizer to Harden DNN Executables, 2023 - 针对深度神经网络相关程序的 Fuzz 测试,请注意,并不是将神经网络应用在 Fuzzing 中,而是针对神经网络相关应用进行 Fuzzing,[已开源](https://github.com/yanzuochen/obsan)。
- FuzzILLI: Fuzzing for JavaScript JIT Compiler Vulnerabilities, 2023 - 谷歌Project Zero安全团队开发的针对 Javascript JIT 引擎进行 Fuzzing 的工具。[已开源](https://github.com/googleprojectzero/Fuzzilli)。
- No Grammar, No Problem: Towards Fuzzing the Linux Kernel without System-Call Descriptions, 2023 - 不用像 Syzkaller 那样编写复杂的系统调用描述,即可对内核进行 Fuzzing 的工具。[FuzzNG 已开源](https://github.com/BUseclab/FuzzNG)。
- DARWIN: Survival of the Fittest Fuzzing Mutators, 2023 - 改进优化 AFL 变异算法,通过实验证明比原生 AFL 多出 66% 的安全漏洞,[已开源](https://github.com/TUDA-SSL/DARWIN),很好奇为啥叫 DARWIN 的软件或者工具这么多🐶。
- LOKI: State-Aware Fuzzing Framework for the Implementation of Blockchain Consensus Protocols, 2023 - 针对区块链共识协议实现 Fuzz 测试的方法,未见开源。
-
2024
- DeepGo: Predictive Directed Greybox Fuzzing, 2024 - 一种名为 DeepGo 的预测式定向性灰盒 Fuzzing 方法,通过结合历史和预测信息,利用深度神经网络和强化学习引导模糊测试达到目标路径,优化测试效率。作者来自国防科技大学计算机学院。
- EnclaveFuzz: Finding Vulnerabilities in SGX Applications, 2024 - Fuzz 对象是使用了因特尔 SGX 技术的软件,[已开源](https://github.com/vul337/EnclaveFuzz),文章来自中国科学院信息工程研究所的 Liheng Chen。
- Large Language Model guided Protocol Fuzzing, 2024 - 研究人员开发了一款以大模型为指导的协议 Fuzz,通过 AI 训练 RFC 文档包含的协议规范,[ChatAFL 已开源](https://github.com/ChatAFLndss/ChatAFL),文章来自新加坡国立大学的 Ruijie Meng。
- MOCK: Optimizing Kernel Fuzzing Mutation with Context-aware Dependency, 2024 - 通过捕获系统调用的状态关系,优化 Linux syscall 模糊测试效率。针对 Linux 内核的 Fuzz 工具,[待开源](https://github.com/m0ck1ng/mock),文章来自浙江大学 Jiacheng Xu。
- Predictive Context-sensitive Fuzzing, 2024 - 一种**新颖的统计覆盖率**的思路。目前大多数 Fuzz 工具都是通过边(edge)作为覆盖引导,edge coverage 是函数的控制流,只考虑代码执行而忽略内部程序状态。本文使用程序分析领域的上下文敏感(context-sensitivity)作为覆盖率统计,结合 calling-context 和 edge coverage,[已开源](https://github.com/eurecom-s3/predictive-cs-fuzzing),文章来自罗马大学的 Pietro Borrello。
- ReqsMiner: Automated Discovery of CDN Forwarding Request Inconsistencies and DoS Attacks with Grammar-based Fuzzing, 2024 - 针对 CDN 请求不一致的 Fuzz 工具,[已开源](https://github.com/Konano/ReqsMiner),工作来自清华大学张超团队。
- ShapFuzz: Efficient Fuzzing via Shapley-Guided Byte Selection, 2024 - 一种指导字节变异的新颖方案,优化变异算法,[已开源](https://github.com/ShapFuzz/ShapFuzz),在 AFL++ 基础之上增加了一个新的 `-w` 命令选项,来自清华大学网络与信息安全实验室。
- DeepGo: Predictive Directed Greybox Fuzzing, 2024 - 一种名为 DeepGo 的预测式定向性灰盒 Fuzzing 方法,通过结合历史和预测信息,利用深度神经网络和强化学习引导 Fuzz 测试达到目标路径,优化测试效率。
- EnclaveFuzz: Finding Vulnerabilities in SGX Applications, 2024 - Fuzz 对象是使用了因特尔 SGX 技术的软件,[已开源](https://github.com/vul337/EnclaveFuzz)。
- Large Language Model guided Protocol Fuzzing, 2024 - 研究人员开发了一款以大模型为指导的协议 Fuzz,通过 AI 训练 RFC 文档包含的协议规范,[ChatAFL 已开源](https://github.com/ChatAFLndss/ChatAFL)。
- MOCK: Optimizing Kernel Fuzzing Mutation with Context-aware Dependency, 2024 - 通过捕获系统调用的状态关系,优化 Linux syscall Fuzz 测试效率。针对 Linux 内核的 Fuzz 工具,[待开源](https://github.com/m0ck1ng/mock)。
- Predictive Context-sensitive Fuzzing, 2024 - 一种**新颖的统计覆盖率**的思路。目前大多数 Fuzz 工具都是通过边(edge)作为覆盖引导,edge coverage 是函数的控制流,只考虑代码执行而忽略内部程序状态。本文使用程序分析领域的上下文敏感(context-sensitivity)作为覆盖率统计,结合 calling-context 和 edge coverage,[已开源](https://github.com/eurecom-s3/predictive-cs-Fuzzing)。
- ReqsMiner: Automated Discovery of CDN Forwarding Request Inconsistencies and DoS Attacks with Grammar-based Fuzzing, 2024 - 针对 CDN 请求不一致的 Fuzz 工具,[已开源](https://github.com/Konano/ReqsMiner)。
- ShapFuzz: Efficient Fuzzing via Shapley-Guided Byte Selection, 2024 - 一种指导字节变异的新颖方案,优化变异算法,[已开源](https://github.com/ShapFuzz/ShapFuzz),在 AFL++ 基础之上增加了一个新的 `-w` 命令选项。
-
2025
- Automatic Library Fuzzing through API Relation Evolvement, 2025 - 通过 API 列表的组合调用进行测试。为了解决隐式API调用规范的问题提出了**关系学习阶段**,即通过更改 API 调用顺序观察执行状态的变化来推断API 关系。作者来自香港大学。
- Blackbox Fuzzing of Distributed Systems with Multi-Dimensional Inputs and Symmetry-Based Feedback Pruning, 2025 - 第一个用于分布式系统的覆盖引导 Fuzzer,[DistFuzz 已开源](https://github.com/zouyonghao/DistFuzz),作者来自北京航空航天大学。
- DUMPLING: Fine-grained Differential JavaScript Engine Fuzzing, 2025 - 一个针对 V8 引擎的 JS Fuzzer。传统 JS Fuzzer 是对输入进行插桩,而 DUMPLING 直接对 JS 引擎插桩,粒度精细,[已开源](https://github.com/two-heart/dumpling-artifact-evaluation)。作者来自[洛桑联邦理工学院](http://www.baidu.com/link?url=Of8YlLI4kY82aXoBJ3qXHZIW4XzCtb69cuF4oCHoomcvVav1tM4xRjBM9zloiyew7ZVnF6QkeGcck-0SRwfmyPaTkZ2v9hz9xzURBTgFqHAgHStcP6HrkE4ued3xfskRNH56uzxZKsur9nJyeVU6pZuVxgPz1JX_4uWCNUHwxtC)。
- FUZZUER: Enabling Fuzzing of UEFI Interfaces on EDK-2, 2025 - FUZZUER,这是一种用于 EDK-2(一种典型且广泛使用的 UEFI 实现)上 UEFI 接口的覆盖引导模糊测试技术,暂未见开源,作者来自普渡大学。
- ICSQuartz: Scan Cycle-Aware and Vendor-Agnostic Fuzzing for Industrial Control Systems, 2025 - 首个原生支持IEC 61131-3结构化文本(ST,一种标准化可编程逻辑控制器编程语言)的模糊测试工具,[ISCQuartz](https://github.com/momalab/ICSQuartz) 已开源,作者来自纽约大学阿布扎比分校。
- MALintent: Coverage Guided Intent Fuzzing Framework for Android, 2025 - MALintent 是第一个对已编译的闭源 Android 应用程序应用灰盒模糊测试的 **Intent Fuzz** 工具,[已开源](https://github.com/sslab-gatech/MALintent)。MALintent 首先使用静态分析找到应用 Intent 相关组件,然后使用 Java Virtual Machine Tools Interface (JVMTI) 实现二进制插桩。实际上我们也有开发过类似的 Intent Fuzz,但是并没有使用覆盖反馈技术。因此,这里的插桩技术值得学习。作者来自佐治亚理工学院。
- Moneta: Ex-Vivo GPU Driver Fuzzing by Recalling In-Vivo Execution States, 2025 - 一个针对 GPU 的 Fuzz 方案,不需要物理设备,Moneta 未见开源,作者来自延世大学。
- QMSan: Efficiently Detecting Uninitialized Memory Errors During Fuzzing, 2025 - 使用 QEMU 实现的专门针对未初始化内存漏洞的 Fuzzer,[QMSan](https://github.com/heinzeen/qmsan) 已开源,作者来自罗马第一大学。
- TWINFUZZ: Differential Testing of Video Hardware Acceleration Stacks, 2025 - 一种基于通过间接代理目标对硬件加速视频解码堆栈进行差异化测试的线束设计和测试技术。工具原型 [twinfuzz](https://github.com/CISPA-SysSec/twinfuzz) 已开源。作者来自CISPA 亥姆霍兹信息安全中心。
- Truman: Constructing Device Behavior Models from OS Drivers to Fuzz Virtual Devices, 2025 - 一个针对 QEMU 虚拟化设备进行 Fuzz 的工具,详细[中文解读](https://zhuanlan.zhihu.com/p/1892291730214199900),作者来自清华大学。
- Automatic Library Fuzzing through API Relation Evolvement, 2025 - 通过 API 列表的组合调用进行测试。为了解决隐式API调用规范的问题提出了**关系学习阶段**,即通过更改 API 调用顺序观察执行状态的变化来推断API 关系。
- Blackbox Fuzzing of Distributed Systems with Multi-Dimensional Inputs and Symmetry-Based Feedback Pruning, 2025 - 第一个用于分布式系统的覆盖引导 Fuzzer,[DistFuzz 已开源](https://github.com/zouyonghao/DistFuzz)。
- DUMPLING: Fine-grained Differential JavaScript Engine Fuzzing, 2025 - 一个针对 V8 引擎的 JS Fuzzer。传统 JS Fuzzer 是对输入进行插桩,而 DUMPLING 直接对 JS 引擎插桩,粒度精细,[已开源](https://github.com/two-heart/dumpling-artifact-evaluation)。
- FuzzUER: Enabling Fuzzing of UEFI Interfaces on EDK-2, 2025 - FuzzUER,这是一种用于 EDK-2(一种典型且广泛使用的 UEFI 实现)上 UEFI 接口的覆盖引导 Fuzz 测试技术,暂未见开源。
- ICSQuartz: Scan Cycle-Aware and Vendor-Agnostic Fuzzing for Industrial Control Systems, 2025 - 首个原生支持IEC 61131-3结构化文本(ST,一种标准化可编程逻辑控制器编程语言)的 Fuzz 测试工具,[ISCQuartz](https://github.com/momalab/ICSQuartz) 已开源。
- MALintent: Coverage Guided Intent Fuzzing Framework for Android, 2025 - MALintent 是第一个对已编译的闭源 Android 应用程序应用灰盒 Fuzz 测试的 **Intent Fuzz** 工具,[已开源](https://github.com/sslab-gatech/MALintent)。MALintent 首先使用静态分析找到应用 Intent 相关组件,然后使用 Java Virtual Machine Tools Interface (JVMTI) 实现二进制插桩。实际上我们也有开发过类似的 Intent Fuzz,但是并没有使用覆盖反馈技术。因此,这里的插桩技术值得学习。
- Moneta: Ex-Vivo GPU Driver Fuzzing by Recalling In-Vivo Execution States, 2025 - 一个针对 GPU 的 Fuzz 方案,不需要物理设备,Moneta 未见开源。
- QMSan: Efficiently Detecting Uninitialized Memory Errors During Fuzzing, 2025 - 使用 QEMU 实现的专门针对未初始化内存漏洞的 Fuzzer,[QMSan](https://github.com/heinzeen/qmsan) 已开源。
- TWINFuzz: Differential Testing of Video Hardware Acceleration Stacks, 2025 - 一种基于通过间接代理目标对硬件加速视频解码堆栈进行差异化测试的线束设计和测试技术。工具原型 [twinFuzz](https://github.com/CISPA-SysSec/twinFuzz) 已开源。
- Truman: Constructing Device Behavior Models from OS Drivers to Fuzz Virtual Devices, 2025 - 一个针对 QEMU 虚拟化设备进行 Fuzz 的工具,详细[中文解读](https://zhuanlan.zhihu.com/p/1892291730214199900)。
-
-
Other
- The Art, Science, and Engineering of Fuzzing: A Survey, 2019
- Fuzzing: a survey, 2018 - 发表在 [*Cybersecurity*](https://cybersecurity.springeropen.com/) 上的一篇关于 Fuzzing 技术的调查。尽管论文中有一些值得商榷的描述,但是该论文可以让我们大概了解 Fuzzing 历史、原理以及技术分类。
- Evaluating Fuzz Testing, 2018
- Fuzzing: State of the art, 2018 - 发表在 [IEEE Transactions on Reliability](https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=24) 上的论文,可以大概了解 Fuzzing 思想,但是分析并不深入,相比上面两篇文章,有一定的差距。
- Source-and-Fuzzing, 2019 - 一些阅读源码和 Fuzzing 的经验,涵盖黑盒与白盒测试,一系列文章对 Fuzz 的分析较为深入,值得一看。
- Effective File Format Fuzzing – Thoughts, Techniques and Results, 2015 - Blackhat Europe 2015 的演讲,作者主要分享多年来对多个开源和商用软件的 Fuzz 方法,包括 Adobe Reader、 Wireshark、 Hex-Rays IDA Pro 等软件。
- CoLaFUZE: Coverage-Guided and Layout-Aware Fuzzing for Android Drivers, 2021 - 一个覆盖率引导和布局感知的模糊工具,用于自动生成有效输入和探索驱动程序代码。用于 Fuzz 测试**安卓驱动程序**。
- Better Pay Attention Whilst Fuzzing, 2022 - 用于解决现有 Fuzzing 工具的两个局限性,缺乏对程序的全面分析和缺乏有效的变异策略。通过深度学习提高覆盖率。
- Fuzzing: Art, Science, and Engineering, 2018
-
Tools
-
API/协议
-
二进制
- afl-unicorn: Fuzzing The 'UnFuzzable' - unicorn) 弥补了 afl 的不足,可以对任意二进制代码片段进行 Fuzz,作为一个完全使用**黑盒进行 Fuzz** 的工具,afl-unicorn 也保留了 afl 原有的代码覆盖率统计,根据反馈对种子进行变异,从而提高代码覆盖。
- Intriguer: Field-Level Constraint Solving for Hybrid Fuzzing - yonsei/intriguer) 的新型**混合 Fuzzer**。通过污点分析和指令跟踪,经过笔者实践,该工具能够覆盖更深层次的代码路径。但是同时也存在 bug,会在 `/tmp` 目录下生成大量冗余文件。
- UnicoreFuzz: On the Viability of Emulation for Kernelspace Fuzzing
- HonggFuzz
-
Categories
Sub Categories