DIRE and its Data: Neural Decompiled Variable Renamings with Respect to Software Class

DIRE and its Data: Neural Decompiled Variable Renamings with Respect to Software Class
复制标题

DOI:
10.1145/3546946
复制
发表时间:
2022-07
影响因子:
4.4
通讯作者:
Luke Dramko;Jeremy Lacomis;Pengcheng Yin;Edward J. Schwartz;Miltiadis Allamanis;Graham Neubig;Bogdan Vasile
Luke Dramko;Jeremy Lacomis;Pengcheng Yin;Edward J. Schwartz;Miltiadis Allamanis;Graham Neubig;Bogdan Vasile
中科院分区:
计算机科学1区
文献类型:
--
作者:
Luke Dramko;Jeremy Lacomis;Pengcheng Yin;Edward J. Schwartz;Miltiadis Allamanis;Graham Neubig;Bogdan Vasile

文献摘要

被引文献

相似文献

反编译器是最常用的工具之一,用于检查没有相应源代码的可执行二进制文件。它将二进制文件转换为高级代码,反转编译过程。不幸的是,反编译器的输出很难读取,因为反编译过程通常是不完整的。最先进的技术使用机器学习来预测变量名称等缺失信息。虽然这些方法通常能够在上下文中建议良好的变量名称,但现有的工作还没有研究训练数据的选择如何影响这些机器学习模型。我们研究数据来源和训练数据的质量如何影响性能,以及经过训练的模型在软件领域的泛化效果如何(如果有的话)。我们使用这样一种机器学习模型 DIRE 来关注变量重命名问题。我们首先详细描述 DIRE 以及用于从原始代码生成训练数据的随附技术。我们还评估了 DIRE 的整体性能,而不考虑数据质量。接下来,我们将展示如何对更流行、可能更高质量的代码(使用 GitHub 星星衡量)进行训练,从而产生更通用的模型,因为流行的代码往往具有更多样化的变量名称。最后,我们评估了 DIRE 预测特定于域的标识符的效果,提出了合并域信息的修改,并表明它在特定于域的场景中预测标识符的频率比原始 DIRE 模型高 23%。
The decompiler is one of the most common tools for examining executable binaries without the corresponding source code. It transforms binaries into high-level code, reversing the compilation process. Unfortunately, decompiler output is far from readable because the decompilation process is often incomplete. State-of-the-art techniques use machine learning to predict missing information like variable names. While these approaches are often able to suggest good variable names in context, no existing work examines how the selection of training data influences these machine learning models. We investigate how data provenance and the quality of training data affect performance, and how well, if at all, trained models generalize across software domains. We focus on the variable renaming problem using one such machine learning model, DIRE. We first describe DIRE in detail and the accompanying technique used to generate training data from raw code. We also evaluate DIRE’s overall performance without respect to data quality. Next, we show how training on more popular, possibly higher quality code (measured using GitHub stars) leads to a more generalizable model because popular code tends to have more diverse variable names. Finally, we evaluate how well DIRE predicts domain-specific identifiers, propose a modification to incorporate domain information, and show that it can predict identifiers in domain-specific scenarios 23% more frequently than the original DIRE model.