• 基于线程切片胎记的多线程软件抄袭检测方法

    • 摘要:

      本发明提出了一种基于线程切片胎记的多线程软件抄袭检测方法,包括:1)基于动态插桩技术对待分析的目标程序实施运行时监控,实时地识别系统调用,并记录与之相关的线程ID、系统调用号、返回值等相关信息,然后对其进行预处理得到有效系统调用序列Trace;2)基于线程ID对Trace进行线程切片,生成一系列由线程ID标识的线程切片Slice;3)在此基础之上为待检测的两个软件的所有线程切片分别生成其线程切片胎记Birth;4)基于两个待检测多线程程序的所有线程切片胎记,分别生成其软件胎记PB1和PB2;5)基于最大双边图匹配,计算软件胎记PB1与PB2的最大相似性;6)通过胎记相似性的均值及给定的阈值,做出抄袭与否的决策.该方法直接作用于二进制代码,无需源码存在.

    • 专利类型:

      发明专利

    • 申请/专利号:

      CN201410076931.X

    • 申请日期:

      2014.03.04

    • 公开/公告号:

      CN103870721A

    • 公开/公告日:

      2014-06-18

    • 发明人:

      郑庆华 刘均 范铭 田振洲 刘烃 杨子江

    • 申请人:

      西安交通大学

    • 主分类号:

      G06F21/12(2013.01)I,G,G06,G06F,G06F21

    • 分类号:

      G06F21/12(2013.01)I,G,G06,G06F,G06F21,G06F21/12

    • 主权项:

      基于线程切片胎记的多线程软件抄袭检测方法,其特征在于,包括如下步骤:1)基于动态插桩技术,对待分析目标程序实施运行时监控,实时地识别待分析目标程序中系统调用函数,并记录与之相关的线程ID、调用地址、系统调用号、函数名、参数、返回值的相关信息,然后对其进行预处理,去除无效的系统调用,得到有效的系统调用序列Trace;2)基于线程ID对有效的系统调用序列Trace进行线程切片,生成一系列由线程ID标识的线程切片Slice;3)基于线程切片,通过提取线程切片中的固定子序列并记录其出现次数,分别为待分析的第一程序P1及第二程序P2的所有线程切片生成其动态线程切片胎记Birth,其中第一程序指的是程序所有者开发的原始程序,第二程序指被认为抄袭了原始程序的可疑程序;4)基于多线程程序所有的线程切片胎记分别为P1和P2生成相应的软件胎记PB1和PB2;5)基于最大双边图匹配,计算软件胎记PB1与PB2的最大相似性,首先针对软件胎记PB1内部的每一个线程切片胎记,计算其与胎记PB2内部每一个线程切片胎记的相似性;然后基于带权双边图匹配算法生成PB1与PB2的最大相似性匹配方案MaxMatch(PB1,PB2);最后基于最大相似性匹配方案,计算PB1与PB2的胎记相似性Sim(PB1,PB2);6)依据多次输入下生成的胎记相似性的均值,及给定的阈值判断是否抄袭.