论文标题
改善AFL ++ CMPLOG:解决瓶颈
Improving AFL++ CmpLog: Tackling the bottlenecks
论文作者
论文摘要
AFL ++ CMPLOG功能的性能在测试的特定程序(PUTS)方面差异很大。在本文中,证明性能差的主要原因是种子熵低,并且缺乏魔术字节候选者的重复性。通过将比较与输入字节进行比较,提出了改进,以跟踪哪些比较由输入字节控制。然后,该映射仅用于模糊该输入部分的魔术字节候选物的比较值。其次,引入了一种缓存机制,以减少冗余执行的数量。对改进版本的评估显示,与所有PUTS的CMPLOG的原始AFL ++实施相比,覆盖率的增长显着,而无需破坏功能。本文提出的解决方案为CMPLOG的重新设计提供了坚实的基础。
The performance of the AFL++ CmpLog feature varies considerably for specific programs under test (PUTs). In this paper it is demonstrated that the main cause of the poor performance is low seed entropy, and a lack of deduplication of magic bytes candidates. An improvement is proposed by mapping comparisons to input bytes, in order to track which comparisons are controlled by what input bytes. This mapping is then used to fuzz only the comparison values that are magic byte candidates for that input part. Second, a caching mechanism is introduced to reduce the number of redundant executions. The evaluation of the improved versions shows a significant coverage gain compared to the original AFL++ implementation of CmpLog for all PUTs, without breaking functionality. The proposed solution in this paper provides a solid basis for a redesign of CmpLog.