中文

In Nomine Function:基于神经网络对剥离二进制中函数命名

机器学习 2021-02-05 v3 计算与语言 机器学习

摘要

本文研究自动为汇编代码片段命名的问题。此处命名指为汇编函数分配一个人类逆向工程师可能赋予的词语串。我们正式且精确地定义了本研究所在框架,即定义了问题,并为训练与测试设计中所做选择提供了合理依据。我们对一个由近900万个函数、取自逾22k软件的大规模真实语料库进行了分析。在该框架下,我们测试了来自自然语言处理(NLP)领域的基线方法(如 Seq2Seq 网络和 Transformer)。有趣的是,我们的评估显示出 promising 结果,击败了当前最优(SOTA)并达到良好性能。我们研究了微调(fine-tuning,即取一个已在大型通用语料上训练好的模型并针对特定任务重新训练)的适用性。该技术在 NLP 领域广为人知且流行。我们的结果证实,即便将神经网络应用于二进制文件,微调依然有效。我们展示了一个在上述语料上预训练的模型,经微调后在特定领域(如预测系统工具、恶意软件等中的名称)具有更高性能。

关键词

引用

@article{arxiv.1912.07946,
  title  = {In Nomine Function: Naming Functions in Stripped Binaries with Neural Networks},
  author = {Fiorella Artuso and Giuseppe Antonio Di Luna and Luca Massarelli and Leonardo Querzoni},
  journal= {arXiv preprint arXiv:1912.07946},
  year   = {2021}
}