本文提出了一种名为 BINALIGNER 的二进制代码比对方法,旨在解决跨编译环境下的二进制文件差异分析问题。二进制差异分析(Binary Diffing)通过比对两个二进制文件的控制流图,将对应同一源代码片段的片段进行对齐,广泛应用于漏洞检测、抄袭检测等安全分析场景。然而,现有方法在跨编译环境(如不同编译器、不同优化级别、不同架构等)下效果有限,且对跨编译环境的支持不够灵活,主要原因在于它们依赖基本块的相似性比较。为了克服这些局限,BINALIGNER 在二进制层面提出了两项核心创新:一是引入条件松弛策略(conditional relaxation strategies)来筛选候选子图对,以减少同一源代码片段被错误匹配或漏匹配的可能性;二是使用与指令无关的基本块特征(instruction-independent basic block features)来生成子图嵌入,从而支持更灵活的跨编译环境二进制差异分析。作者在四个典型的跨编译环境场景(跨版本、跨编译器、跨优化级别、跨架构)以及这些场景的组合下进行了实验评估,结果表明 BINALIGNER 在大多数场景中显著优于现有的最先进方法。特别地,在跨架构场景以及多种跨编译环境组合场景下,BINALIGNER 的 F1 分数平均比基线方法高出 65%。此外,作者还通过两个真实世界的漏洞及其补丁的案例研究,展示了 BINALIGNER 在实际安全分析中的实用性。总体而言,BINALIGNER 为跨编译环境的二进制代码比对提供了一种更准确且灵活的解决方案,对于安全研究人员、漏洞分析师以及逆向工程人员具有较高的参考价值。
💡 推荐理由: 二进制比对是漏洞分析与补丁追踪的核心技术。BINALIGNER 在跨架构等复杂场景下显著提升匹配准确率,有助于蓝队自动化识别补丁差异、定位被利用的脆弱代码,并提升固件与多平台软件的安全审计效率。
🎯 建议动作: 研究跟进