返回
FunSp: countering binary code similarity detection through function splitting
DOI:10.1093/comjnl/bxag054.png)
摘要
En 中文
二进制代码相似性检测(BCSD)通过使逆向工程师能够识别二进制文件中的关键函数,对软件安全构成重大威胁。代码混淆是一种主要防御手段,但现有技术通常带来高性能开销并引入可识别的模式。为解决这些局限性,我们提出FunSp,一种基于编译器中间表示层函数分割的轻量级代码混淆方法。FunSp通过支配树分析将函数的控制流图分割为多个子图,修复子图间的数据依赖,重构控制流,最终重写代码以生成语义等效的子函数。该方法在不注入大量冗余代码的情况下重新分配基本块,从而最小化开销。实验结果表明,FunSp有效削弱了当前最先进的BCSD模型,在10 000个函数的集合中将Recall@1降至0.016。它保持了实用性,引入平均代码膨胀率为1.353倍和12.7%的运行时开销。与Obfuscator-LLVM和Tigress相比,FunSp减少了73.5%的代码膨胀和5.5%的运行时开销。
Keyword:
function split
code obfuscation
binary code similarity detection
dominator tree

