LLM2D
预训练嵌入在二进制代码分析中的作用
On the Role of Pre-trained Embeddings in Binary Code Analysis
作者: Alwin Maier, Felix Weissberg, Konrad Rieck
发布日期: 2/14/2025
arXiv ID: oai:arXiv.org:2502.08682v1

摘要

arXiv:2502.08682v1 宣告类型: cross 摘要:深度学习在二进制代码分析方面取得了显著的进步。特别是,预训练的汇编代码嵌入已成为解决分析任务(如衡量代码相似性或识别函数)的标准方法。这些嵌入能够从未标记的代码中学习向量表示。然而,与自然语言处理不同,二进制代码分析中的许多任务都有丰富的标签信息。例如,从编译器提供的调试信息中,可以轻松推导出函数边界、优化级别和参数类型的数据标签。因此,嵌入的主要动机并不直接适用于二进制代码分析。 在本文中,我们从批判性的角度探索预训练嵌入的作用。为此,我们在来自Debian分发的120万个函数的语料库上系统性地评估了最近的汇编代码嵌入在五个下游任务上的表现。我们观察到,在有足够的标记数据时,多个嵌入表现出相似的效果,此前工作中报道的差异几乎没有明显的区别。令人惊讶的是,我们发现没有预训练的端到端学习在平均表现上最佳,这引起了对专有嵌入必要性的质疑。通过对标记数据量的变化,我们最终得出嵌入何时提供优势以及何时对二进制代码分析而言端到端学习更为优选的指导原则。