一句话:提出 bcov,在无编译器支持下对 x86-64 ELF 二进制进行静态插桩,实现高效、可扩展的覆盖率分析。
覆盖率分析对软件测试和反馈引导模糊测试至关重要。本文提出 bcov,一个无需编译器支持、可直接对 ELF 格式 x86-64 二进制进行静态插桩的二进制级覆盖率分析工具。为提升效率并扩展到大规模真实软件,作者将 Agrawal 的探针剪枝技术引入二进制插桩,并利用其超级块降低开销;提出切片微执行(sliced microexecution)以稳健分析跳转表,提高 CFG 精度并支持插桩跳转表项;针对 x86-64 指令较短导致绕行难的问题,积极利用填充字节并在相邻基本块中系统放置 detour。摘要未给出具体数值评估,但作者称这些技术提升了扩展性与效率。
Code coverage analysis plays an important role in the software testing process. More recently, the remarkable effectiveness of coverage feedback has triggered a broad interest in feedback-guided fuzzing. In this work, we introduce bcov, a tool for binary-level coverage analysis. Our tool statically instruments x86-64 binaries in the ELF format without compiler support. We implement several techniques to improve efficiency and scale to large real-world software. First, we bring Agrawal’s probe pruning technique to binary-level instrumentation and effectively leverage its superblocks to reduce overhead. Second, we introduce sliced microexecution, a robust technique for jump table analysis which improves CFG precision and enables us to instrument jump table entries. Additionally, smaller instructions in x86-64 pose a challenge for inserting detours. To address this challenge, we aggressively exploit padding bytes and systematically host detours in neighboring basic blocks.