一种程序相似性检测方法、装置、电子设备和存储介质与流程

文档序号:23720254发布日期:2021-01-24 07:43阅读:来源:国知局

技术特征:
1.一种程序相似性检测方法,其特征在于,包括:从预设源程序中提取源函数,以及所述源函数对应的函数基本信息,并生成反汇编指令文本;基于所述函数基本信息和所述反汇编指令文本对预设目标程序进行筛选,得到潜在相似函数,并确定与所述潜在相似函数对应的目标源函数;将所述目标源函数拆解为多个源程序片段;将所述潜在相似函数拆解为多个目标程序片段;分别计算任意所述源程序片段与所述目标程序片段之间的相似性,得到相似性分数;确定所述相似性分数达到第一预设阈值的相似目标程序片段个数;将所述相似目标程序片段个数达到第二预设阈值的潜在相似函数确定为相似函数;根据所述相似函数的个数,判断所述源程序和所述目标程序是否存在关联关系。2.根据权利要求1所述的方法,其特征在于,所述从预设源程序中提取源函数,以及所述源函数对应的函数基本信息,并生成反汇编指令文本的步骤,包括:对所述源程序执行脱壳操作,得到原始编译程序;从所述原始编译程序中提取源函数,以及所述源函数对应的函数基本信息,并生成反汇编指令文本。3.根据权利要求2所述的方法,其特征在于,所述基于所述函数基本信息和所述反汇编指令文本对预设目标程序进行筛选,得到潜在相似函数,并确定与所述潜在相似函数对应的目标源函数的步骤,包括:判断所述原始编译程序是否为预设库函数或预设编译器插入函数;若否,采用所述函数基本信息对所述预设目标程序进行筛选,以及采用所述反汇编指令文本对所述预设目标程序进行筛选,得到潜在相似函数。4.根据权利要求1所述的方法,其特征在于,所述分别计算任意所述源程序片段与所述目标程序片段之间的相似性,得到相似性分数的步骤,包括:对所述源程序片段与所述目标程序片段进行标准化处理,得到标准化源程序片段和标准化目标程序片段;基于最长公共子序列算法,对所述标准化源程序片段和所述标准化目标程序片段进行相似性计算,得到相似性分数。5.一种程序相似性检测装置,其特征在于,包括:提取模块,用于从预设源程序中提取源函数,以及所述源函数对应的函数基本信息,并生成反汇编指令文本;潜在相似函数筛选模块,用于基于所述函数基本信息和所述反汇编指令文本对预设目标程序进行筛选,得到潜在相似函数,并确定与所述潜在相似函数对应的目标源函数;源程序片段拆解模块,用于将所述目标源函数拆解为多个源程序片段;目标程序片段拆解模块,用于将所述潜在相似函数拆解为多个目标程序片段;相似性分数计算模块,用于分别计算任意所述源程序片段与所述目标程序片段之间的相似性,得到相似性分数;相似目标程序片段个数确定模块,用于确定所述相似性分数达到第一预设阈值的相似目标程序片段个数;
相似函数确定模块,用于将所述相似目标程序片段个数达到第二预设阈值的潜在相似函数确定为相似函数;关联关系判断模块,用于根据所述相似函数的个数,判断所述源程序和所述目标程序是否存在关联关系。6.根据权利要求5所述的装置,其特征在于,所述提取模块,包括:脱壳子模块,用于对所述源程序执行脱壳操作,得到原始编译程序;提取子模块,用于从所述原始编译程序中提取源函数,以及所述源函数对应的函数基本信息,并生成反汇编指令文本。7.根据权利要求6所述的装置,其特征在于,所述潜在相似函数筛选模块,包括:判断子模块,用于判断所述原始编译程序是否为预设库函数或预设编译器插入函数;潜在相似函数筛选子模块,用于若否,采用所述函数基本信息对所述预设目标程序进行筛选,以及采用所述反汇编指令文本对所述预设目标程序进行筛选,得到潜在相似函数。8.根据权利要求5所述的装置,其特征在于,所述相似性分数计算模块,包括:标准化处理子模块,用于对所述源程序片段与所述目标程序片段进行标准化处理,得到标准化源程序片段和标准化目标程序片段;相似性分数计算子模块,用于基于最长公共子序列算法,对所述标准化源程序片段和所述标准化目标程序片段进行相似性计算,得到相似性分数。9.一种电子设备,其特征在于,所述设备包括处理器以及存储器:所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;所述处理器用于根据所述程序代码中的指令执行权利要求1-4任一项所述的程序相似性检测方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-4任一项所述的程序相似性检测方法。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1