# XFL：基于极端多标签学习的二进制函数命名

> XFL 将去符号二进制中的函数命名视为极端多标签分类：函数名被拆分为词元，再由 PfastreXML 从常见标签词表中为每个函数排序合适的词元。其 DEXTER 嵌入结合基于 angr VEX 中间表示的静态分析特征、调用图上下文和整个二进制的全局上下文，另有一个语言模型把预测的词元排列成函数名字符串。在来自 Debian 软件包、共 10,047 个 x86-64 C 二进制中的 741,724 个函数上，以 1,024 个标签的词表，作者报告精确率 0.835、召回率 0.575、F1 0.681，在精确率和 F1 上领先 Punstrip、Debin 与 Nero。

- 作者：James Patrick-Evans; Moritz Dannehl; Johannes Kinder
- 原标题：XFL: Naming Functions in Binaries with Extreme Multi-label Learning
- 发表载体：IEEE S&P 2023
- 发表状态：会议论文
- 出版／提交日期：2023 年 5 月
- 日期依据：IEEE Xplore 与出版方提交的 Crossref 元数据均记录出版时间为 2023 年 5 月；IEEE 于 2023 年 7 月 21 日将文章加入 Xplore。本条目不认定具体出版日。
- arXiv 首次提交：2021 年 7 月 28 日
- arXiv：2107.13404
- 已复核的 arXiv 版本：v4
- DOI：10.1109/SP46215.2023.10179439
- 来源复核于：2026-10-18
- 收录于：2026-10-19
- 原始论文：<https://ieeexplore.ieee.org/document/10179439>
- PDF：<https://arxiv.org/pdf/2107.13404v4>
- 代码：<https://github.com/lmu-plai/xfl>
- BibTeX：<https://awesomerea.org/papers/citations/paper-xfl.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-xfl/>
- 记录 JSON：<https://awesomerea.org/papers/paper-xfl/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-xfl/index.md)

## 研究范围与局限

预测结果是固定词表中的词元标签，经排序后可选地组合成名称；它们并非恢复的源码名称，评分也按词元而非完整名称匹配。评测使用来自 Debian 软件包、以多种编译器与优化设置构建的 x86-64 ELF C 二进制，以及规模较小的 Nero 数据集；训练所得模型仅适用于 x86-64 GNU/Linux 二进制。测试时所有工具均从符号表获取函数边界，因此不计入边界检测错误。许多测试函数名也出现在训练集中；仅考察训练中从未出现的名称时，F1 降至 0.242。混淆和对抗性二进制不在研究范围内。Nero 数据集上 Debin 与 Dire 的数据取自 Nero 论文，并未重新运行。

## 与本合集的关联

补充以二进制嵌入上的多标签学习预测去符号二进制函数名的方法，与变量名、类型及数据结构恢复研究互补。

## 发表与复核说明

IEEE Xplore 与 Crossref 的标题、三位作者顺序、DOI、页码 2375–2390 及 2023 年 5 月日期一致。审阅 arXiv v4（2022-12-12；v1 为 2021-07-28），其标题与作者一致。论文中的代码链接 github.com/unibw-patch/xfl 现重定向至 lmu-plai/xfl。所审阅的 2025-11-30 快照在 COPYING 中采用 GPL-3.0。其 README 说明 xfl/ 是包含实验数据和日志的部分原始源码，并建议使用重构后的 xfl-r/ 进行比较；lm/ 包含生成函数名的语言模型。README 中的 BibTeX 列出页码 1677–1692 及 DOI 10.1109/SP46215.2023.00096，但 doi.org 无法解析该 DOI。XFL-R 的安装需要 Python 3.8、TensorFlow 2.13.1、PostgreSQL 13、radare2 5.5.4 与 Ghidra 10.4，需要从另行下载的源码编译 PfastreXML，还需要一个 46.9 GB 的 Zenodo 模型与数据表压缩包（10.5281/zenodo.10733597），其元数据未注明许可证；预训练 DEXTER 嵌入链接至另一个下载站点。论文报告训练 DEXTER 约需 850 GB 内存。

## 一手来源

1. <https://ieeexplore.ieee.org/document/10179439>
2. <https://api.crossref.org/works/10.1109/SP46215.2023.10179439>
3. <https://arxiv.org/abs/2107.13404>
4. <https://arxiv.org/pdf/2107.13404v4>
5. <https://github.com/lmu-plai/xfl/blob/5ad25691972158d4f559c401a7462f82fc5412a0/README.md>
6. <https://github.com/lmu-plai/xfl/blob/5ad25691972158d4f559c401a7462f82fc5412a0/COPYING>
7. <https://github.com/lmu-plai/xfl/blob/5ad25691972158d4f559c401a7462f82fc5412a0/xfl-r/README.md>
8. <https://github.com/lmu-plai/xfl/blob/5ad25691972158d4f559c401a7462f82fc5412a0/xfl-r/INSTALL.md>
9. <https://github.com/lmu-plai/xfl/blob/5ad25691972158d4f559c401a7462f82fc5412a0/xfl/evaluation/README.md>
10. <https://zenodo.org/records/10733597>

## 关于此条目

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