# SymLM：基于上下文敏感、执行感知代码嵌入的去符号二进制函数名预测

> SymLM 将去符号二进制的函数名预测为一组名称单词。它使用在微执行轨迹上预训练的 Trex 模型编码每个函数的指令，将其与取自 Ghidra 过程间控制流图的调用者、内部被调用函数及外部库调用的嵌入融合，再由 MLP 解码器对固定词表中的单词打分；名称预处理和词嵌入模块 CodeWordNet 用于处理缩写与同义词。在 27 个项目的 16,027 个二进制、共 1,431,169 个函数上（涵盖 x86、x64、ARM 与 MIPS，O0–O3 优化级别及四种 Hikari 混淆），作者报告加权平均精确率 0.634、召回率 0.677、F1 0.655，并给出固件案例研究。

- 作者：Xin Jin; Kexin Pei; Jun Yeon Won; Zhiqiang Lin
- 原标题：SymLM: Predicting Function Names in Stripped Binaries via Context-Sensitive Execution-Aware Code Embeddings
- 发表载体：ACM CCS 2022
- 发表状态：会议论文
- 出版／提交日期：2022 年 11 月 7 日
- 日期依据：ACM 文章页面与出版方提交的 Crossref 元数据均将出版日期列为 2022-11-07，这也是 11 月 7—11 日会议的首日；本条目记录出版方给出的日期。
- DOI：10.1145/3548606.3560612
- 来源复核于：2026-10-18
- 收录于：2026-10-19
- 原始论文：<https://dl.acm.org/doi/10.1145/3548606.3560612>
- PDF：<https://xinjin95.github.io/assets/pdf/SymLM_ccs2022_paper.pdf>
- 代码：<https://github.com/OSUSecLab/SymLM>
- BibTeX：<https://awesomerea.org/papers/citations/paper-symlm.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-symlm/>
- 记录 JSON：<https://awesomerea.org/papers/paper-symlm/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-symlm/index.md)

## 研究范围与局限

函数名被预测为来自固定训练词表的无序单词集合，并按单词级精确率、召回率和 F1 评分，CodeWordNet 会将语义相近的单词计为匹配。这并非精确恢复源码名称，且无法生成词表外的单词。二进制由 GCC 7.5 为 Linux 构建，并在同样的 27 个项目内按二进制划分数据集。在来自 12 个未见项目的 540 个二进制上，整体表现仍然较低，作者将部分原因归于词表不匹配；后来一项 NDSS 2025 研究在去重数据上比较时，报告 SymLM 的平均 F1 为 0.105。与 NFRE 的比较仅针对 x64，与 NERO 的比较使用 NERO 的数据集。混淆实验覆盖四种 Hikari 混淆，不包括加壳或加密。固件案例中，八个 32 位 ARM 固件映像的 1,061 个函数里有 172 个得到部分正确的名称。

## 与本合集的关联

补充结合执行语义与调用上下文的去符号二进制函数名预测方法，并在多种架构、优化级别和混淆设置下评估，与变量名、类型及数据结构恢复研究互补。

## 发表与复核说明

Crossref 将标题截断为“SymLM”；完整标题以 ACM 页面和作者托管的 PDF 为准，该 PDF 带有 CCS ’22 页眉及 DOI。ACM 与 Crossref 的四位作者顺序和页码 1631–1645 一致，ACM 将文章标为免费阅读。按标题检索 arXiv 未发现预印本。所审阅的 2025-07-06 仓库快照采用 MIT 许可证，包含内置的 fairseq、数据集生成脚本、x64 样例数据集、训练、预测与评估脚本以及 CodeWordNet 训练代码。其 README 使用 Python 3.8 与 CUDA 11.3 版 PyTorch，并固定 transformers 4.16.2、gensim 3.8.1 等依赖；训练需要通过 Google Drive 链接获取 2021 年 12 月的 Trex 检查点和 CodeWordNet 模型，README 并提示较新的 Trex 检查点可能不兼容。完整数据集位于 Zenodo 记录 8306055（约 9.4 GB；元数据标注 CC BY 4.0），该记录登记的是论文 DOI，而非单独的数据集 DOI。论文报告在 Trex 预训练之外还需训练 8 天。

## 一手来源

1. <https://dl.acm.org/doi/10.1145/3548606.3560612>
2. <https://api.crossref.org/works/10.1145/3548606.3560612>
3. <https://xinjin95.github.io/assets/pdf/SymLM_ccs2022_paper.pdf>
4. <https://github.com/OSUSecLab/SymLM/blob/89a4815bb9e75e381b45665e40884f936986ed96/README.md>
5. <https://github.com/OSUSecLab/SymLM/blob/89a4815bb9e75e381b45665e40884f936986ed96/LICENSE>
6. <https://github.com/OSUSecLab/SymLM/blob/89a4815bb9e75e381b45665e40884f936986ed96/requirements.txt>
7. <https://zenodo.org/records/8306055>
8. <https://zenodo.org/api/records/8306055>
9. <https://www.ndss-symposium.org/wp-content/uploads/2025-797-paper.pdf>

## 关于此条目

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