paperbot · PL 论文追踪

全部论文 待读 收藏

P2 GUIFuzz++: Unleashing Grey-box Fuzzing on Desktop Graphical User Interfacing Applications

GUIFuzz++:将灰盒模糊测试释放到桌面图形用户界面应用上
ASE 2025 40th IEEE/ACM International Conference on Automated Software Engineering (ASE)2025匹配度 2/10 · 该论文研究桌面 GUI 模糊测试(动态分析),而用户核心方向是静态分析、LLM/Agent 与程序分析的交叉、浮点程序分析及贝叶斯程序分析,两者几乎无重叠。论文虽属程序测试与调试领域,但未涉及静态分析、LLM 或用户关注的任一核心主题。引用 0 inbox
Dillon Otto, Tanner Rowlett, Stefan Nagy
crossref: 2026-09-12

AI 速览

一句话:提出首个通用桌面 GUI 模糊测试器,通过 GUI 交互解释器把随机输入翻译为 GUI 操作来发现 bug。

桌面应用是当今最大的软件生态之一,但其图形用户界面(GUI)代码长期缺乏有效测试:AFL++、libFuzzer 等桌面模糊测试器只能处理文件或缓冲区式输入,而 Android Monkey、iOS XCMonkey 等移动端 GUI 模糊器又依赖平台专属 SDK,均无法直接用于桌面 GUI。本文提出 GUIFuzz++,这是首个面向桌面 GUI 软件的通用模糊测试器。其核心是一种新颖的 GUI Interaction Interpreter:作为中间层,把模糊器生成的随机输入翻译成点击、滚动、按键、窗口导航等具体 GUI 操作,从而使 AFL++ 这类非 GUI 模糊器能被轻松移植到 GUI 测试中。该方法支持 QT、GTK、Xorg 等主流 GUI 框架,并利用普遍存在的软件无障碍(Accessibility)技术设计了一系列增强机制,显著提升 GUI 模糊测试的精度与 bug 发现能力。作者在 AFL++ 之上实现原型,并在 12 个真实 GUI 应用上开展大规模消融评估,共发现 23 个此前未知的 GUI 相关缺陷,其中 14 个已被开发者确认或修复。

问题
桌面应用 GUI 代码普遍未被充分测试,现有桌面模糊器无法处理 GUI 交互,而移动端 GUI 模糊器又难以移植到桌面平台。
方法
提出 GUIFuzz++,通过 GUI Interaction Interpreter 中间层将模糊器随机输入翻译为 GUI 操作,并借助软件无障碍技术增强测试精度,将其作为 AFL++ 的原型扩展实现。
评估
在 12 个流行的真实 GUI 应用上进行大规模消融实验,发现 23 个此前未知的 GUI 缺陷,其中 14 个已获开发者确认或修复。
原文摘要(Abstract)

Desktop applications represent one of today’s largest software ecosystems, accounting for over 96% of workplace computing and supporting essential operations across critical sectors such as healthcare, commerce, industry, and government. Though modern software is increasingly being vetted through fuzzing—an automated testing technique for large-scale bug discovery—a major component of desktop applications remains universally under-vetted: the Graphical User Interface (GUI). Existing desktop-based fuzzers like AFL++ and libFuzzer are limited to non-GUI interfaces (e.g., file- or buffer-based inputs), rendering them wholly incompatible with GUIs. Conversely, mobile app GUI fuzzers like Android’s Monkey and iOS’s XCMonkey rely on platform-specific SDKs and event-handling, rendering them fundamentally unportable to the broader, more complex landscape of desktop software. For these reasons, desktop GUI code remains largely under-tested, burdening users with numerous GUI-induced errors that should, in principle, be just as discoverable as any other well-fuzzed class of software bugs.This paper introduces GUIFuzz++: the first general-purpose fuzzer for desktop GUI software. Unlike desktop fuzzers that randomly mutate file- or buffer-based inputs, GUIFuzz++ exclusively targets GUI interactions—clicks, scrolls, key presses, window navigation, and more—to uncover complex event sequences triggering GUI-induced program errors. Central to our approach is a novel GUI Interaction Interpreter: a middle-layer translating fuzzer-generated random inputs into distinct GUI operations, enabling successful non-GUI fuzzers like AFL++ to be easily ported to testing GUIs. Beyond supporting today’s most popular GUI development frameworks like QT, GTK, and Xorg, we introduce a suite of enhancements capitalizing on ubiquitous Software Accessibility Technologies, significantly boosting GUI fuzzing precision as well as GUI bug-finding effectiveness.We integrate GUIFuzz++ as a prototype atop state-of-the-art GUI-agnostic fuzzer AFL++, and perform a large-scale ablation study of its fundamental components and enhancements. In an evaluation across 12 popular, real-world GUI applications, GUI-FUZZ++ uncovers 23 previously-unknown GUI-induced bugs— with 14 thus far confirmed or fixed by developers.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot9316,
  title = {GUIFuzz++: Unleashing Grey-box Fuzzing on Desktop Graphical User Interfacing Applications},
  author = {Dillon Otto and Tanner Rowlett and Stefan Nagy},
  booktitle = {ASE},
  year = {2025},
  doi = {10.1109/ase63991.2025.00098}
}