首页|期刊导航|信息工程大学学报|基于函数拆分对抗二进制代码相似性检测

基于函数拆分对抗二进制代码相似性检测OA

Function Splitting-Based Adversarial Attacks on Binary Code Similarity Detection

中文摘要英文摘要

二进制代码相似性检测能够识别软件中的同源函数,进而定位关键模块.攻击者将其应用于逆向工程,给软件安全带来了风险.代码混淆可以增加软件的复杂程度,增强其抗检测能力.传统代码混淆主要在函数内部实现,存在空间开销和运行时开销大的问题.为此,提出了基于函数拆分的方法进行代码混淆,进而对抗二进制代码相似性检测.该方法在程序的中间表示层实现.首先,基于支配树将原函数的基本块集合划分为多个子集.其次,通过"定义—使用"链识别子集间的数据依赖关系.接着,引入控制变量以修复子集间的控制流.最后,通过代码重写生成子函数.实验结果表明,经过函数拆分混淆后的程序,使二进制相似性检测模型的召回率降至1.3%(函数池大小为1 024),代码膨胀率为原始模型的2.06倍.

Binary code similarity detection can identify homologous functions in software,thereby lo-cating critical modules.When attackers apply this technology to reverse engineering,posing significant risks to software security.Code obfuscation can increase software complexity and enhance its resis-tance to detection.Traditional code obfuscation techniques are primarily implemented within a single function,often resulting in substantial space and runtime overhead.To address this,a code obfuscation method based on function splitting to counteract binary code similarity detection is proposed in this pa-per.The proposed method is operated at the intermediate representation level of the program.First,the basic block set of the original function is partitioned into multiple subsets based on the dominator tree.Second,data dependencies between subsets are identified through def-use chains.Subsequently,con-trol variables are introduced to repair the control flow among these subsets.Finally,sub-functions are generated via code rewriting.Experimental results demonstrate that after applying function-splitting ob-fuscation,the recall rate of binary similarity detection models drops to as low as 1.3%(with a function pool size of 1 024),while the code bloating ratio is 2.06 times that of the original model.

魏然;舒辉

信息工程大学,河南 郑州 450001信息工程大学,河南 郑州 450001

信息技术与安全科学

代码混淆二进制代码相似性检测函数拆分支配树

code obfuscationbinary code similarity detectionfunction splittingdominator tree

《信息工程大学学报》 2026 (1)

64-71,8

10.3969/j.issn.1671-0673.2026.01.009

评论