中文

填充因素——探索 PE 文件中的函数检测

密码学与安全 2025-05-01 v1

摘要

函数检测是二进制分析中的一个著名问题。虽然以前的研究主要关注 Linux/ELF,但 Windows/PE 二进制文件被忽视或仅部分考虑。本文引入 FuncPEval,一个新的 Windows x86 和 x64 PE 文件数据集,包含 Chromium 和 Conti 勒索软件,以及 1,092,820 个函数起始点的 ground truth 数据。利用 FuncPEval,我们评估了五个基于启发式的方法(Ghidra, IDA, Nucleus, rev.ng, SMDA)和三个基于机器学习的方法(DeepDi, RNN, XDA)的函数起始检测工具。其中,IDA 在 Chromium x64 上 achieves 最高的 F1 分数(98.44%),而 DeepDi 紧随其后(97%)但凭借显著的速度优势脱颖而出。为实现可解释性,我们检查填充在检测结果中的影响。我们的分析显示,除 rev.ng 外,所有测试的工具对随机填充都较为敏感。随机填充显著削弱了 RNN、XDA 和 Nucleus 的效果。among 基于学习的工具,DeepDi exhibits 最不敏感且整体最快,而 Nucleus 是非基于学习的工具中最受影响的。在此基础上,我们改进了 Shin 等人提出的循环神经网络(RNN)并增强了 XDA 工具,使其 F1 分数提高约 10%。

关键词

引用

@article{arxiv.2504.21520,
  title  = {Padding Matters -- Exploring Function Detection in PE Files},
  author = {Raphael Springer and Alexander Schmitz and Artur Leinweber and Tobias Urban and Christian Dietrich},
  journal= {arXiv preprint arXiv:2504.21520},
  year   = {2025}
}

备注

extended version of the paper "Padding Matters - Exploring Function Detection in PE Files (Dataset/Tool Paper)" to be published in Proceedings of the Fifteenth ACM Conference on Data and Application Security and Privacy (CODASPY '25)