中文

KEENHash:将程序哈希为函数感知嵌入以进行大规模二进制代码相似性分析

密码学与安全 2025-06-16 v1 软件工程

摘要

二进制代码相似性分析(BCSA)是网络安全等诸多领域的关键研究领域。具体而言,函数级差异工具是 BCSA 中最广泛使用的方法:它们逐一进行函数匹配以评估二进制程序之间的相似性。然而,此类方法需要高时间复杂度,使其在大规模场景中(例如 1/n 到 n 搜索)不可扩展。为了实现有效高效的大规模程序级 BCSA,我们提出了 KEENHash,一种利用大型语言模型(LLM)生成的函数嵌入将二进制文件哈希为程序级表示的新型哈希方法。KEENHash 利用 K-Means 和特征哈希将二进制文件压缩为一个紧凑且固定长度的程序嵌入,使我们能够进行有效高效的大规模程序级 BCSA,超越先前最先进的方法。实验结果表明,KEENHash 的速度至少是最先进的函数匹配工具的 215 倍,同时保持了有效性。此外,在包含 53 亿次相似性评估的大规模场景中,KEENHash 仅需 395.83 秒,而这些工具至少需要 56 天。我们还在大规模 BCSA 的程序克隆搜索方面评估了 KEENHash,覆盖了 202,305 个二进制文件的广泛数据集。与 4 种最先进的方法相比,KEENHash 在所有方法上至少提升了 23.16%,并且在大规模 BCSA 安全场景(恶意软件检测)中表现出显著优势。

关键词

引用

@article{arxiv.2506.11612,
  title  = {KEENHash: Hashing Programs into Function-Aware Embeddings for Large-Scale Binary Code Similarity Analysis},
  author = {Zhijie Liu and Qiyi Tang and Sen Nie and Shi Wu and Liang Feng Zhang and Yutian Tang},
  journal= {arXiv preprint arXiv:2506.11612},
  year   = {2025}
}