摘要:模糊测试在挖掘软件安全漏洞、提高软件安全性方面发挥着巨大的作用, 本文针对模糊测试变异策略效率较低以及种子评分策略不合理的问题进行了讨论, 提出了基于聚类的变异优化策略和基于新覆盖信息的能量分配策略. 第1个改进策略通过产生新覆盖的非确定性变异提取有效的组合变异位置, 然后利用聚类算法进一步确定有效变异的位置, 在变异阶段对有效变异的位置进行细粒度确定性变异. 本文第2个改进策略针对种子评分策略, 种子产生的新覆盖信息与静态分析的分支转移信息作为种子评分的重要指标. 我们将改进后的模糊测试工具-AgileFuzz与现有的模糊测试改进工具AFL 2.52b、AFLFast以及EcoFuzz进行比较, 对binutils、libxmll2等开源程序进行了多次实验. 实验结果表明, AgileFuzz在相同时间内发现了更多的程序分支覆盖, 并且在测试过程中发现了fontforge、harfbuzz等开源软件中5个未知的漏洞.