一种功能相同但源码不同的代码跟踪序列的新对齐方式制造技术

技术编号:42852972 阅读:30 留言:0更新日期:2024-09-27 17:20
本发明专利技术提供一种功能相同但源码不同的代码跟踪序列的新对齐方式,属于动态软件分析领域,所述代码跟踪序列对齐方式包括获取代码跟踪序列、对齐尽可能多的序列对、对齐标准输入的序列对并以其为基准扩充对齐,获取代码跟踪序列使用llvm插桩工具,编写插桩程序,获取代码运行中的所有信息,对齐尽可能多的序列对通过使用尼德曼‑翁施算法获得最长的序列对,对齐标准输入的序列对并以其为基准扩充对齐,通过广度优先遍历算法尝试对齐,并使用sentence‑bert,下文简称为SBERT,一种使用了孪生网路的预训练模型模型而不是简单的变量数据改变来进行计算是否对齐,以生成对齐序列,这种方法可以消除掉错误对齐结果,并对齐部分本应对齐但没有对齐的序列对。

【技术实现步骤摘要】


技术介绍

1、程序分析是指通过应用各种技术和工具来理解、评估和改进软件程序的过程。程序分析旨在发现和解决程序中的问题,提高程序的质量、性能和安全性,程序分析主要分为静态分析和动态分析,静态分析是在程序源代码或二进制代码的静态表示上进行分析的过程,可以帮助开发人员在编译和运行之前发现问题,并提供改进代码质量的建议。动态分析是在程序运行时对其行为进行监测、控制和分析的过程,动态分析可以帮助开发人员理解程序的行为、优化性能和调试问题。

2、一般而言,代码跟踪的对齐方法没有对结果的正确性进行确认,认为初始序列的对齐一定是正确的,并使用他们作为基线进行对齐。

3、然而由于代码具体实现存在各种各样的差异,不可能所有的代码都是理想化的,所以这种对齐方法极易出错,当初始对齐序列出错后,会出现连锁的后续对齐出错。

4、当两个版本的代码跟踪在某处存在相同的符号表达,但两者并不是相同的司职,在对齐之后,一般的对齐方法会以此为基线继续进行序列对齐,这无疑是灾难性的,这会产生不确定数量的错误对齐和正确对齐的缺失,因为代码跟踪是不允许出现交叉对齐本文档来自技高网...

【技术保护点】

1.一种功能相同但源码不同的代码跟踪序列的新对齐方式,其特征在于,所述序列对齐方法包括如下步骤:

2.根据权利要求1所述的一种功能相同但源码不同的代码跟踪序列的新对齐方式,其特征在于,所述步骤S1中,获取代码跟踪序列使用LLVM对代码进行插桩操作,在运行中获取运行信息,在插桩过程中,着重记录输入语句、赋值语句与分支语句,这些语句在代码运行中起到关键作用。

3.根据权利要求1所述的一种功能相同但源码不同的代码跟踪序列的新对齐方式,其特征在于,所述步骤S2中,为了获取兼顾精确度与召回率的序列对,采用以得分机制为驱动的尼德曼-翁施算法进行初步对齐,其中得分机制由变量值与...

【技术特征摘要】

1.一种功能相同但源码不同的代码跟踪序列的新对齐方式,其特征在于,所述序列对齐方法包括如下步骤:

2.根据权利要求1所述的一种功能相同但源码不同的代码跟踪序列的新对齐方式,其特征在于,所述步骤s1中,获取代码跟踪序列使用llvm对代码进行插桩操作,在运行中获取运行信息,在插桩过程中,着重记录输入语句、赋值语句与分支语句,这些语句在代码运行中起到关键作用。

3.根据权利要求1所述的一种功能相同但源码不同的代码跟踪序列的新对齐方式,其特征在于,所述步骤s2中,为了获取兼顾精确度与召回率的序列对,采用以得分机制为驱动的尼德曼-翁施算法进行初步对齐,其中得分机制由变量值与符号表达控制,得分类型分为数值不同、数值相同但符号表达不同、数值相同且符号表达相同三种类型。

4.根据权利要求1所述的一种功能相同但源码不同的代码跟踪序列的新对齐方式,其特征在于,所述步骤s3中,获得的序列对内容为([scanfa1.cdep,scanfb1.cdep],[scanfa1.ddep,scanfb1.ddep],···,[scanfa3.cdep,scanfb3.cdep], [scanfa3.ddep,scanfb3.ddep], ···),其中scanfa1和scanfb1分别表示版本a与版本b中的第一个标准输入,其中的下标“1”表示当前语句的执行次序,cdep表示当前语句的直接控制语句,ddep表示当前语句的直接数...

【专利技术属性】
技术研发人员:张乔乔刘志兰李馨然胡天昊姜一鸣张卫丰
申请(专利权)人:炫彩互动网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1