使用中间表示进行跨语言二进制源码匹配
通过利用编译器中间表示来改进代码语言模型的多语言能力,并促进跨语言转换,该研究探讨了在代码语言模型中利用编译器中间表示的可行性和优势,构建了一个并行数据集 SLTrans,并通过对不同规模的代码语言模型进行连续因果语言建模训练,从而在各种代码生成任务和度量标准中实现了显著和一致的提升。
Mar, 2024
该研究展示了如何将自然语言处理的思想和技术应用于大规模的二进制代码分析,提出了两个重要的代码相似性比较问题,并通过内部实验验证了所提出的方法的优越性。
Aug, 2018
本文提出了神经符号方法,通过中间表示(IR)和 UnixCoder 优化,实现了 COBOL 代码克隆任务,取得了 12.85 MAP@2 的表现提升。
Apr, 2023
利用大规模源代码语料库中的领域知识(例如变量名称和注释)构建人工智能模型,以捕获二进制代码的可操作性,以此来帮助人类理解二进制代码,并使用人类理解的度量标准来评估模型的性能。
Oct, 2022
本文提出了一种新的方法,使用低级别的编译器中间表示 (IR) 来提高代码的翻译质量,不同于使用传统转换方法的手工指定规则,使用神经机器翻译 (NMT) 方法进行翻译,并将 IRs 作为中间变量,能够在 C ++,Java,Rust 和 Go 语言中获得自然的翻译结果,平均提高正确翻译数 11%,在一些语言对中高达 79%,同时还将 IRs 用作翻译的中间枢轴。
Jun, 2022
大型语言模型(LLMs)在提高高资源编程语言的开发者生产力方面表现出色。然而,许多低资源编程语言由于缺乏标记样本而无法受益于 LLMs,本研究通过使用源语言数据来提高目标语言的模型性能,并针对 4 个任务进行了广泛实验,以探讨交叉语言迁移学习的工作原理和最佳选择源语言的方式。
Oct, 2023
在这项工作中,我们开始探讨使用深度神经网络对二进制代码理解进行训练的可能性。具体而言,网络将以直接从二进制中派生的特征作为输入,并输出英文功能描述,以帮助逆向工程师调查闭源软件的功能,无论是恶意的还是良性的。我们发现嵌入距离相关性(EDC)测试对于评估数据集值非常有诊断能力,表明我们收集的数据集和一些现有的开源数据集质量较低。
Apr, 2024
通过结合长文档转换器和中间表示的使用,本文提出了一种能够进行跨体系结构功能搜索的模型,无需手动特征工程、预训练或动态分析步骤。我们将该方法与一系列基准方法进行了对比,在一般函数搜索任务和有针对性的漏洞搜索任务中,我们的方法表现出强大的性能,优于所有基准方法。
Oct, 2023
使用大语言模型(LLMs),将代码更改从一种编程语言翻译成另一种编程语言,通过设计和实现名为 Codeditor 的第一个 LLM,我们发现它在所有常用的自动指标上都大幅超越了现有的方法,并且与现有的生成模型配合使用可以获得更好的性能。
Jul, 2023