澳科大学者在国际顶级软件工程学术会议发表突破性研究:揭示编译器优化对二进制差异分析工具的影响

2025/07/25

澳门科技大学(澳科大)创新工程学院-计算机科学与工程学院任小蕾助理教授在软件工程领域顶级会议 ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE) 2025上发表论文,首次系统揭示了编译器窥孔优化对二进制差异工具的重大挑战,打破了其优化韧性的普遍假设,为软件安全领域提供了创新视角和改进方向。

FSE(即 ESEC/FSE)是软件工程领域的顶级国际会议,被中国计算机学会(CCF)认定为 A 类会议。全球计算机机构排名 Computer Science Rankings (CSRankings) 学术排名系统以学术影响力为核心标准,精选 FSE 等少数中国计算机学会 A 类会议作为评估全球高校及学者计算机科学研究实力的关键指标。澳门科技大学首次以第一完成单位在软件工程顶级会议FSE上发表研究成果,标志着其在编程语言与程序分析等核心领域的科研贡献与国际影响力。

image.png

澳科大在CSRankings上的排名

image.jpg

20250624日任小蕾在 FSE 2025(挪威特隆赫姆)上进行论文演讲

二进制差异分析技术是软件安全领域的核心技术,广泛应用于漏洞检测、恶意软件分析、代码克隆识别和补丁分析。然而,现代编译器优化,尤其是 LLVM 的窥孔优化,通过替换指令序列或简化控制流图(CFG),显著改变了二进制代码结构,导致现有工具在处理优化代码时性能下降。研究团队通过深入分析窥孔优化的影响,揭示了主流二进制差异工具在复杂代码变化下的局限性,为开发更鲁棒的分析工具奠定了基础。

image.png

论文中研究的编译器窥孔优化对代码影响的示例 

任小蕾研究团队利用编译器测试套件和编译验证工具,定量和定性的分析了窥孔优化在编译器优化过程中的作用及其对二进制代码的深远影响。主要发现包括:

  • 窥孔优化的普遍性:窥孔优化是 LLVM 编译器中最频繁调用的优化之一,在 O1 O3 优化级别中的调用频率占比 14% 39.7%,在十大最常用的编译器优化技术中排名第一,领先第二名至少 11%

  • 对代码结构的影响:窥孔优化会显著改变二进制代码的指令序列和控制流。例如,优化可将 15 条指令的基本块缩减至 4 条,或通过消除分支简化控制流,导致传统工具匹配精度下降。

对工具性能的影响:通过对主流工具(如 BinDiff JTrans)的测试,研究发现即使是目前最领先的二进制对比分析工具,在面对窥孔优化引发的复杂控制流变化时,精确度也会显著下降。BinDiff 因结合调用图拓扑结构表现出较好韧性,但仍受限于复杂的块间变化;JTrans 在处理块间变化时仅能识别部分匹配对 

image.png

论文提出的方法整体流程图

为提升过程内二进制代码比对的有效性,该研究提出两种解决方案:

·         调用图集成:通过整合函数调用图的拓扑信息,削弱由窥孔优化(peephole optimization)引起的局部代码剧变对相似度计算的干扰 。

·         动态边界检测:为解决优化导致的跨基本块(inter-basic-block)代码变更问题,该方法通过分析特定指令和上下文,动态地确定受影响代码区域的边界,从而实现更精确的匹配 。

研究团队计划进一步探索编译优化对程序分析的影响,开发更强大的二进制分析工具,为软件安全领域的漏洞检测、逆向工程和恶意软件分析提供支持。这项研究的发表不仅为软件工程和程序分析领域提供了宝贵洞察,也凸显了澳门科技大学在全球计算机科学领域的卓越成就。澳科大将继续支持前沿科学研究,推动软件工程和软件安全领域的创新发展,为全球科技进步贡献更多智慧与力量。

论文发表链接:https://dl.acm.org/doi/abs/10.1145/3729389