# CLAP：借助自然语言监督学习可迁移的二进制代码表示

> CLAP（对比式语言—汇编预训练）学习与自然语言解释对齐的汇编函数嵌入。其数据引擎以 GCC 和 Clang 在 O0–O3 与 Os 下编译 Ubuntu 的 C/C++ 软件包，由 GPT-3.5 为约 260 万个对应的源码函数生成解释，再用其中一半解释微调 Vicuna-13B“影子模型”为更多代码生成说明，最终得到 1.95 亿对汇编—解释数据。采用地址重定基、WordPiece 分词与跳转感知嵌入的 1.1 亿参数汇编编码器先在汇编上预训练，再与文本编码器进行对比对齐。所得嵌入可通过将代码与文本提示匹配来实现零样本分类。在候选池为 10,000 个函数的 BinaryCorp-3M 相似性检索中，零样本 CLAP 的平均 recall@1 为 0.836，经微调的 jTrans 为 0.571。

- 作者：Hao Wang; Zeyu Gao; Chao Zhang; Zihan Sha; Mingyang Sun; Yuchen Zhou; Wenyu Zhu; Wenju Sun; Han Qiu; Xi Xiao
- 原标题：CLAP: Learning Transferable Binary Code Representations with Natural Language Supervision
- 发表载体：ACM ISSTA 2024
- 发表状态：会议论文
- 出版／提交日期：2024 年 9 月 11 日
- 日期依据：ACM 提交的 Crossref 元数据将纸质与在线出版日期均记为 2024-09-11；本条目不以 ISSTA 2024 于 9 月 16–20 日举行的会议日期或 arXiv 日期替代该日期。
- arXiv 首次提交：2024 年 2 月 26 日
- arXiv：2402.16928
- 已复核的 arXiv 版本：v1
- DOI：10.1145/3650212.3652145
- 来源复核于：2026-10-19
- 收录于：2026-10-27
- 原始论文：<https://dl.acm.org/doi/10.1145/3650212.3652145>
- PDF：<https://arxiv.org/pdf/2402.16928v1>
- 代码：<https://github.com/Hustcw/CLAP>
- BibTeX：<https://awesomerea.org/papers/citations/paper-clap.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-clap/>
- 记录 JSON：<https://awesomerea.org/papers/paper-clap/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-clap/index.md)

## 研究范围与局限

训练用的解释由 GPT-3.5 和经微调的 Vicuna 模型依据源码生成，并非人工撰写；五位专家为每个模型的 50 条解释打分，多数被评为可接受。作者指出，仅使用 Ubuntu 构建环境以及采用 GPT-3.5 生成解释都可能带来偏差。函数由 IDA Pro 7.6 反汇编，少于三个基本块的函数被排除。相似性结果使用 BinaryCorp-3M 中不同优化级别的函数对，各基线采用线性探测，jTrans 另做了完整微调，CLAP 则未经微调；密码算法识别（17 种算法，约 7 万个依据函数名与软件包元数据标注的函数）和协议分类（18 种类型）使用作者从 Ubuntu 软件包构建的数据集，其中微调后的 CLAP 超过基线，零样本 CLAP 在密码算法识别上则略逊于最佳基线。恶意软件与排序算法结果仅为个案研究。训练使用 32 块 A100 GPU。CLAP 输出的是嵌入和标签分数，既不是反编译器，也不是恶意软件检测器。

## 与本合集的关联

补充与自然语言对齐的汇编表示学习方法，可在二进制分析中支持零样本和少样本函数标注及相似性检索，与 jTrans 以及基于大语言模型的反编译和摘要研究互补。

## 发表与复核说明

Crossref 记录该文为 ISSTA '24 论文集文章，页码 503–515，许可证为 CC BY-NC-SA 4.0；十位作者顺序与 arXiv 一致。ACM 文章页面拒绝自动访问，因此出版信息以 Crossref 为准，所审阅的文本是唯一版本 arXiv v1（2024-02-26），其页眉带有 ISSTA 2024 标识及占位 DOI。表 1 给出零样本 CLAP 的平均 recall@1 为 0.836，引言则写作 83.3%。论文链接 Hustcw/CLAP。在所审阅的 2024-09-28 提交中，仓库没有许可证文件，包含案例研究笔记本、冒泡排序、SHA-3 及一个以 VirusTotal 哈希标识的恶意样本的 IDA 数据库与重定基汇编、提示词文件、人工评估截图和 IDA 处理脚本，但不含训练代码或 1.95 亿对数据集。README 链接 Hugging Face 模型 hustcw/clap-asm 与 hustcw/clap-text，其模型卡声明 MIT 许可证，加载时需启用 trust_remote_code。

## 一手来源

1. <https://dl.acm.org/doi/10.1145/3650212.3652145>
2. <https://api.crossref.org/works/10.1145/3650212.3652145>
3. <https://arxiv.org/abs/2402.16928>
4. <https://arxiv.org/pdf/2402.16928v1>
5. <https://github.com/Hustcw/CLAP/tree/18e38ded87bdf49e3f7eeb87c0329d1ca9f6a21b>
6. <https://github.com/Hustcw/CLAP/blob/18e38ded87bdf49e3f7eeb87c0329d1ca9f6a21b/README.md>
7. <https://huggingface.co/hustcw/clap-asm/blob/620f4beba2edce172e8f35e263399716494950c9/README.md>
8. <https://huggingface.co/hustcw/clap-text/blob/3c4bfe1a936fd9f9140892c4d1d813e4a23301f8/README.md>

## 关于此条目

已依据论文及一手来源复核。请通过原始论文或 BibTeX 引用原作者。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
