澳門科技大學(澳科大)創新工程學院-計算機科學與工程學院任小蕾助理教授在軟件工程領域頂級會議 ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE) 2025上發表論文,首次系統揭示了編譯器窺孔優化對二進制差異工具的挑戰,打破了其“優化韌性”的普遍假設,為軟件安全領域提供了創新視角和改進方向。
FSE(即 ESEC/FSE)是軟件工程領域的頂級國際會議,被中國計算機學會(CCF)認定為 A 類會議。 全球計算機機構排名 Computer Science Rankings (CSRankings)系統以學術影響力為核心標準,精選 FSE 等少數中國計算機學會 A 類會議作為評估全球高校及學者計算機科學研究實力的關鍵指標。澳門科技大學首次以第一單位在軟件工程頂級會議FSE上發表研究成果,標志著其在編程語言與程序分析等核心領域的科研貢獻與國際影響力。
澳科大在CSRankings上的排名
2025年06月24日任小蕾助理教授在 FSE 2025(挪威特隆赫姆)上進行論文演講
二進制差異分析技術是軟件安全領域的核心技術,廣泛應用於漏洞檢測、惡意軟件分析、代碼克隆識別和補丁分析。然而,現代編譯器優化,尤其是 LLVM 的窺孔優化,通過替換指令序列或簡化控制流圖(CFG),顯著改變了二進制代碼結構,導致現有工具在處理優化代碼時性能下降。研究團隊通過深入分析窺孔優化的影響,揭示了主流二進制差異工具在複雜代碼變化下的局限性,為開發更魯棒的分析工具奠定了基礎。
論文中研究的編譯器窺孔優化對代碼影響的示例
任小蕾研究團隊利用編譯器測試套件 和 編譯驗證工具,定量和定性的分析了窺孔優化在編譯器優化過程中的作用及其對二進制代碼的深遠影響。主要發現包括:
窺孔優化的普遍性:窺孔優化是 LLVM 編譯器中最頻繁調用的優化之一,在 O1 至 O3 優化級別中的調用頻率占比 14% 至 39.7%,在十大最常用的編譯器優化技術中排名第一,領先第二名至少 11%。
對代碼結構影響:窺孔優化會顯著改變二進制代碼的指令序列和控制流。例如,優化可將 15 條指令的基本塊縮減至 4 條,或通過消除分支簡化控制流,導致傳統工具匹配精度下降。
對工具性能的影響:通過對主流工具(如 BinDiff 和 JTrans)的測試,研究發現即使是目前最領先的二進制對比分析工具,在面對窺孔優化引發的複雜控制流變化時,精確度也會顯著下降。BinDiff 因結合調用圖拓撲結構表現出較好韌性,但仍受限於複雜的塊間變化;JTrans 在處理塊間變化時僅能識別部分匹配對。
論文提出的方法整體流程圖
為提升過程內二進制代碼比對的有效性,該研究提出兩種解決方案:
· 調用圖集成:通過整合函數調用圖的拓撲信息,削弱由窺孔優化(peephole optimization)引起的局部代碼劇變對相似度計算的干擾 。
· 動態邊界檢測:為解決優化導致的跨基本塊(inter-basic-block)代碼變更問題,該方法通過分析特定指令和上下文,動態地確定受影響代碼區域的邊界,從而實現更精確的匹配 。
研究團隊計劃進一步探索編譯優化對程序分析的影響,開發更強大的二進制分析工具,為軟件安全領域的漏洞檢測、逆向工程和惡意軟件分析提供支持。這項研究的發表不僅為軟件工程和程序分析領域提供了寶貴洞察,也凸顯了澳門科技大學在全球計算機科學領域的卓越成就。澳科大將繼續支持前沿科學研究,推動軟件工程和軟件安全領域的創新發展,為全球科技進步貢獻更多智慧與力量。
論文發表鏈接:https://dl.acm.org/doi/abs/10.1145/3729389