随着跨平台软件的日益普及,许多功能相同的程序需要在不同编程语言中实现,这促使相似性检测技术必须从单一语言扩展到跨语言领域,以便能够应用于漏洞检测等多个方面.然而,跨语言代码相似性检测的主要挑战在于如何提取不同编程语言的语...随着跨平台软件的日益普及,许多功能相同的程序需要在不同编程语言中实现,这促使相似性检测技术必须从单一语言扩展到跨语言领域,以便能够应用于漏洞检测等多个方面.然而,跨语言代码相似性检测的主要挑战在于如何提取不同编程语言的语义特征,不同语言较大的语法差异降低了代码之间的相似性.为了应对这个困难,本文提出了一种基于联合特征表示的跨语言代码相似性检测方法.首先,提取了不同语言的抽象语法树,并对不同语言的AST节点进行了统一,旨在缩小不同编程语言间的特征差异,以实现跨语言的代码相似性检测.此外,集成基于序列和基于图的神经网络,将不同语言代码的抽象语法树路径序列与扩展代码属性图(Extended Control Plane Gateway)的特征相结合形成联合特征,从而全面地理解不同语言代码的语义和结构信息.最后,使用来自两个开源代码编程竞赛网站的数据集,将本文方法与其他方法进行实验对比.结果显示本文提出的方法在多个评估指标上均优于其他工具和方法.此外,为了进一步验证本文方法在真实场景下的有效性和实用性,从合成数据集SARD中挑选了多种不同漏洞类型的跨语言漏洞数据集进行了实验.实验结果表明,本文方法表现出了较好的有效性.展开更多
文摘The photochemical[2+2]cycloaddition reaction of carbonyl compunds and alkenes was studied by photochemical induced dynamic nuclear spin polarization.
文摘随着跨平台软件的日益普及,许多功能相同的程序需要在不同编程语言中实现,这促使相似性检测技术必须从单一语言扩展到跨语言领域,以便能够应用于漏洞检测等多个方面.然而,跨语言代码相似性检测的主要挑战在于如何提取不同编程语言的语义特征,不同语言较大的语法差异降低了代码之间的相似性.为了应对这个困难,本文提出了一种基于联合特征表示的跨语言代码相似性检测方法.首先,提取了不同语言的抽象语法树,并对不同语言的AST节点进行了统一,旨在缩小不同编程语言间的特征差异,以实现跨语言的代码相似性检测.此外,集成基于序列和基于图的神经网络,将不同语言代码的抽象语法树路径序列与扩展代码属性图(Extended Control Plane Gateway)的特征相结合形成联合特征,从而全面地理解不同语言代码的语义和结构信息.最后,使用来自两个开源代码编程竞赛网站的数据集,将本文方法与其他方法进行实验对比.结果显示本文提出的方法在多个评估指标上均优于其他工具和方法.此外,为了进一步验证本文方法在真实场景下的有效性和实用性,从合成数据集SARD中挑选了多种不同漏洞类型的跨语言漏洞数据集进行了实验.实验结果表明,本文方法表现出了较好的有效性.