[发明专利]基于属性计数和结构度量技术相结合的程序剽窃检测方法及系统有效
申请号: | 201710462952.9 | 申请日: | 2017-06-10 |
公开(公告)号: | CN107169321B | 公开(公告)日: | 2020-07-28 |
发明(设计)人: | 卫军超;耿楠;孔凡东;常在斌 | 申请(专利权)人: | 西安交通工程学院 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F11/36 |
代理公司: | 西安研创天下知识产权代理事务所(普通合伙) 61239 | 代理人: | 郭璐 |
地址: | 710300 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 属性 计数 结构 度量 技术 相结合 程序 剽窃 检测 方法 系统 | ||
1.基于属性计数和结构度量技术相结合的程序剽窃检测方法,其特征在于,系统包括用户界面、后台管理模块、代码相似度检测模块和数据库模块;用户提交代码检测请求,后台管理模块调用代码相似度检测模块,代码相似度检测模块从用户提交的源码数据库中读取数据源码,完成相似度计算,并将计算的结果反馈给后台管理模块,后台管理模块再把检测的结果反馈到用户界面,供用户查看;
该检测方法包括如下步骤:
S1、提交程序代码
将待检测程序提交给系统,系统接受用户提交的检测任务;
S2、预处理
将源程序进行预处理,即去除无用的数据;
S3、采用GST字符串匹配算法计算相似度,并通过决策函数依据GST算法得出的相似度数值判断是否满足决策条件,若满足决策条件,则返回结果,结束检测;若不满足决策条件则进行步骤S4的操作;
具体的,运用GST算法度量相似度,就要把程序代码标记化,也就是把代码表示为字符串,代码转化为字符串时需扫描源程序;考虑到源程序代码的语言及版本,不同的程序设计语言进行扫描时要定义的标记和字符串的转换规则是不同的;基于这样的考量,设计了基于XML的针对C语言的扫描与语法分析工具;在使用公式计算相似度之前,需把代码中的标记转化为对应的字母或数字,这样就把程序转化为能够体现程序特征的字符串,最后用GST算法对字符串进行相似度计算,即比较字符串;
S4、根据C语言的特征,从源程序中选取属性特征元素和结构特征元素,然后依据属性计数法和结构度量技术相结合的方法计算相似度;
具体的,为了提高检测结果的准确性,将GST算法检测的结果介于60%和90%之间的程序对,用基于属性计数法和结构度量技术相结合的相似度计算方法进行二次检测;首先用属性计数法选定程序的属性特征元素,在选定特征元素时,要充分考虑到源程序语言的特点,利用词法分析工具Lex将待检测的源程序进行编辑并转化为标识符,最后统计相应标识符的数量;再次利用结构度量技术确定程序常用的结构,并获取常用结构;根据源程序特点利用开源的Ucc,编写语法规则,将程序生成语法结构,以确保Lex能够将源程序的结构特征元素提取出来;最后将两次提取的特征元素组合成特征向量,并用余弦系数法计算特征向量的相似度;
S5、综合两次相似度度量结果给出相似度评价等级,即确定程序代码剽窃的程度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通工程学院,未经西安交通工程学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710462952.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种真空冷冻干燥鲜花酸奶酥及其制备方法
- 下一篇:一种大豆肽饮料及其制备工艺