2023 · 会议论文
XFL:基于极端多标签学习的二进制函数命名
XFL: Naming Functions in Binaries with Extreme Multi-label Learning
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。
研究范围与局限
预测结果是固定词表中的词元标签,经排序后可选地组合成名称;它们并非恢复的源码名称,评分也按词元而非完整名称匹配。评测使用来自 Debian 软件包、以多种编译器与优化设置构建的 x86-64 ELF C 二进制,以及规模较小的 Nero 数据集;训练所得模型仅适用于 x86-64 GNU/Linux 二进制。测试时所有工具均从符号表获取函数边界,因此不计入边界检测错误。许多测试函数名也出现在训练集中;仅考察训练中从未出现的名称时,F1 降至 0.242。混淆和对抗性二进制不在研究范围内。Nero 数据集上 Debin 与 Dire 的数据取自 Nero 论文,并未重新运行。
与本合集的关联
补充以二进制嵌入上的多标签学习预测去符号二进制函数名的方法,与变量名、类型及数据结构恢复研究互补。
发表与复核详情
- 发表载体
- 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
IEEE Xplore 与 Crossref 的标题、三位作者顺序、DOI、页码 2375–2390 及 2023 年 5 月日期一致。审阅 arXiv v4(2022-12-12;v1 为 2021-07-28),其标题与作者一致;未与 IEEE 版本逐页比对。论文中的代码链接 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,因此本条目使用已注册的 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 内存。本次未运行或下载任何内容。
来源复核于
本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。
一手来源
- https://ieeexplore.ieee.org/document/10179439
- https://api.crossref.org/works/10.1109/SP46215.2023.10179439
- https://arxiv.org/abs/2107.13404
- https://arxiv.org/pdf/2107.13404v4
- README.md GitHub · lmu-plai/xfl · 修订 5ad2569
- COPYING GitHub · lmu-plai/xfl · 修订 5ad2569
- xfl-r/README.md GitHub · lmu-plai/xfl · 修订 5ad2569
- xfl-r/INSTALL.md GitHub · lmu-plai/xfl · 修订 5ad2569
- xfl/evaluation/README.md GitHub · lmu-plai/xfl · 修订 5ad2569
- https://zenodo.org/records/10733597