这篇论文针对二进制程序模糊测试(binary-only fuzzing)中的覆盖率反馈质量不佳问题,提出了一种新的编译器级插桩方法,命名为“Breaking Through Binaries”(简称BTB)。传统上,对于没有源代码的二进制程序,模糊测试工具往往依赖动态二进制插桩(DBI)或静态重写来获取覆盖率信息,但这类方法通常带来显著性能开销,且难以捕获编译器优化后的复杂语义(如函数内联、控制流合并等),导致生成的覆盖率反馈不够精确,限制了漏洞发现能力。本文的核心创新在于利用编译器前端的高级中间表示(IR)来解析二进制文件,并重新生成高质量、语义丰富的插桩代码,在保持二进制兼容性的同时,实现接近源码级插桩的覆盖率精度。具体地,作者设计了一个编译器级二进制的插桩框架,能够从二进制中恢复结构信息,并插入针对基本块、边及关键指令(如比较、跳转)的探针,这些探针经过编译器的优化调度,极大减少了运行时开销。实验部分使用了多个真实世界的开源项目(如libpng, libtiff, jq等)以及不同架构(x86-64和ARM64)的二进制,对比了最先进的二进制仅模糊测试工具(如AFL++的QEMU模式、Zydis插桩等),结果显示BTB在覆盖率、崩溃发现数量和速度方面均有显著提升,部分场景下能达到甚至超越源码级插桩的效果。论文还探讨了该方法的局限性,例如对静态链接、混淆代码的适用性问题,以及未来扩展方向。总体而言,这项工作为缺乏源码的软件安全测试提供了一种更高效、更准确的插桩方案,适合二进制分析、漏洞挖掘和模糊测试领域的研究人员与安全工程师阅读。
💡 推荐理由: 对于闭源或遗留系统,只能进行二进制模糊测试。该研究能显著提升此类场景的覆盖率反馈质量,让漏洞挖掘更高效,直接改善安全测试能力。
🎯 建议动作: 研究跟进