本发明提出了一种基于动态关键指令序列胎记的软件抄袭检测方法,包括:1)基于动态插桩对待分析的程序进行监控,结合动态污点分析,实时地对关键指令进行识别和记录;2)对记录的关键指令序列进行预处理,剥离操作数,抽取助记符序列;3)在此基础之上为待检测的两个软件分别生成其动态关键指令序列胎记;4)计算胎记的相似性;5)通过胎记相似性的均值及给定的阈值,做出抄袭与否的决策.该方法直接针对二进制代码,无需源码存在,更具有现实意义;检测手段不依赖于特定平台或编程语言,具有更广阔的应用范围;对于语义保留的代码混淆技术具有很好的抵抗力,提高了对深度抄袭的检测能力.
发明专利
CN201310449858.1
2013.09.27
CN103577323A
2014-02-12
郑庆华 田振洲 刘烃 范铭
西安交通大学
G06F11/36(2006.01)I,G,G06,G06F,G06F11
G06F11/36(2006.01)I,G,G06,G06F,G06F11,G06F11/36
基于动态关键指令序列胎记的软件抄袭检测方法,其特征在于,包括如下步骤:1)基于动态插桩技术,对待分析程序实施运行时监控;同时结合数据流分析,进行动态关键指令的识别和记录,生成动态关键指令序列;2)对抽取的动态关键指令序列进行预处理,剥离操作数,生成助记符序列;3)基于助记符序列,利用k?gram算法,分别为待分析的第一程序及第二程序生成动态关键指令序列胎记;4)进行第一程序及第二程序胎记相似性的计算;5)依据多次输入下生成的胎记相似性的均值,及给定的阈值判断是否抄袭.