Proj CMI Paper Reading: PerfFuzz: Automatically Generating Pathological Inputs
Abstract
前提:当为程序提供表现出最坏情况行为的输入时,软件中的性能问题可能会意外出现。
本文:提出了 PerfFuzz,这是一种在没有任何领域知识的情况下自动生成跨程序位置执行病态行为的输入的方法。
任务:generate inputs that exercise pathological behavior across program locations, without any domain knowledge
方法:使用多维反馈并独立地最大化所有程序位置的执行计数。
效果:
- 找到在程序中执行不同热点的各种输入,
- 通过转义局部最大值来生成总执行路径长度比以前的方法更长的输入。
- 有效地生成展示算法复杂性漏洞的输入。
基于:AFL
实验:
数据集:
常用的四个实际 C 程序上评估 PerfFuzz。
效果:
- 最受打击的程序分支的执行次数提高了 5 到 69 倍,
- 总执行路径的长度增加了 1.9 到 24.7 倍
- 优于之前的工作。