2025 · 会议论文

超越分类:借助领域适配的大语言模型推断去符号二进制中的函数名

Beyond Classification: Inferring Function Names in Stripped Binaries via Domain Adapted LLMs

SymGen 使用经 LoRA 微调的 Code Llama 模型生成去符号二进制的函数名,而不是在固定的名称词表上分类。每个去符号函数先由 Ghidra 反编译,再屏蔽其自身名称,并对被调用函数名进行归一化以便去重。微调之前,模型先以反编译代码及其对应源函数的大语言模型生成摘要进行领域适配。在 33 个 C 项目针对 x86-64、x86-32、ARM 和 MIPS 架构及 O0–O3 优化级别构建的函数上(经去重由 2,237,915 个减至 495,494 个),作者报告词级平均 F1 为 0.277(x86-64 上为 0.380),并给出混淆二进制与 Linux 恶意软件的案例研究。

研究范围与局限

函数名被拆分为单词,并以精确率、召回率和 F1 评分,同时使用 SymLM 的 CodeWordNet 归并语义相近的词;预测结果是描述性的推测,并非恢复的原始符号。平均 F1 为 0.277,在 MIPS(0.137)和 ARM(0.262)上更低。摘要中最高 409.3%、553.5% 与 489.4% 的提升是作者报告的相对 AsmDepictor 的改进;各基线在作者去重后的数据集上重新训练,得分远低于其原论文结果,XFL 仅在 x86-64 上比较。每种架构和优化级别分别训练一个模型。所有二进制均由 GCC 9.4.0 构建,输入依赖 Ghidra 输出,且 Code Llama 的预训练数据未公开,仍可能存在数据泄漏。混淆测试对来自六个项目的 363 个二进制应用 Hikari 的三种默认混淆(F1 为 0.271–0.303);恶意软件研究涵盖 16 个 x86-64 构建中的 812 个函数(F1 为 0.348)。

与本合集的关联

补充采用显式去重、基于生成式大语言模型的去符号二进制函数名推断方法,与基于分类的函数命名及变量、类型和数据结构恢复研究互补。

发表与复核详情

发表载体
NDSS 2025
发表状态
会议论文
出版/提交日期
2025 年(具体日期未核实)
日期依据
NDSS 官方论文与 Internet Society 提交的 Crossref 元数据确认出版年份为 2025;不以 2 月 24—28 日的研讨会日期作为出版日。
DOI
10.14722/ndss.2025.240797

NDSS 页面、最终 PDF 与 Crossref 的标题、三位作者顺序和 DOI 一致;Crossref 未列出页码。PDF 注明 Linxi Jiang 与 Xin Jin 为同等贡献的第一作者。SymGen 是系统名称,并不属于论文标题;按标题检索 arXiv 未发现预印本。论文链接的仓库按 2025-06-05 快照审阅,提供 Ghidra 反编译、数据处理、摘要生成、基于 alpaca-lora 的微调、预测与评估脚本,一份样例数据集,以及面向 codellama/CodeLlama-34b-Instruct-hf 的 39 MB LoRA 适配器(r=8);不含基础模型权重,其权重适用各自条款。论文报告在一块 80 GB A100 上进行 LoRA 训练约需 37 小时。README 使用 Python 3.9 conda 环境,依赖大多未固定版本,其中 peft 从 Git 安装。README 链接 Zenodo 记录 10.5281/zenodo.15530083(约 7.5 GB,含源项目、二进制与反编译数据;元数据标注 CC BY 4.0),其中第三方项目保留各自许可证。README 声明采用 Apache License 2.0,LICENSE 文件在 OSU 版权声明之后包含 Apache 2.0 文本,但 GitHub 报告为 NOASSERTION;本条目不对这一差异作出判断。本次未运行或下载代码、模型及数据集。

来源复核于

本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。

一手来源

  1. https://www.ndss-symposium.org/ndss-paper/beyond-classification-inferring-function-names-in-stripped-binaries-via-domain-adapted-llms/
  2. https://www.ndss-symposium.org/wp-content/uploads/2025-797-paper.pdf
  3. https://api.crossref.org/works/10.14722/ndss.2025.240797
  4. README.md GitHub · OSUSecLab/SymGen · 修订 78df514
  5. LICENSE GitHub · OSUSecLab/SymGen · 修订 78df514
  6. requirements.txt GitHub · OSUSecLab/SymGen · 修订 78df514
  7. lora_weights/adapter_config.json GitHub · OSUSecLab/SymGen · 修订 78df514
  8. scripts/evaluation/calculate_score.py GitHub · OSUSecLab/SymGen · 修订 78df514
  9. https://zenodo.org/records/15530083
  10. https://zenodo.org/api/records/15530083