一种通过动态识别id防止源代码拷贝的方法

文档序号:6514900阅读:1023来源:国知局
一种通过动态识别id防止源代码拷贝的方法
【专利摘要】本发明公开了一种通过动态识别ID防止源代码拷贝的方法,适用于计算机程序源代码和移动设备终端源代码的防拷贝,该方法包括以下步骤:首先建立静态链接库工程,并在链接库工程中创建能根据计算机硬件ID删除被拷贝源代码的线程函数,同时设置一变量来监测线程是否在运行;然后把整个代码工程中耦合度低并且能执行到的函数移植到静态链接库工程中,并将这些函数的启动与设置的线程运行监测变量相关联,最后编译静态链接库工程生成LIB库文件,并把LIB库文件添加到整套代码工程,声明封装函数,删除封装函数原有的实现部分,直接编译源代码工程,即可做到源代码的防拷贝功能。
【专利说明】一种通过动态识别ID防止源代码拷贝的方法
【技术领域】
[0001]本发明涉及计算机安全【技术领域】,具体地说,特别涉及到一种通过动态识别ID防止源代码拷贝的方法。
【背景技术】
[0002]随着网络技术的飞速发展,防拷贝技术显得越来越重要,可以说几乎所有公司局域网内都会安装防拷贝监控软件。
[0003]目前的防拷贝技术一般有两种。第一种是通过安装监控软件来监控拷贝情况。第二种是通过加密来防止他人拷贝。第一种方法的缺陷在于:如果有人通过安装其它操作系统来启动计算机,监控软件就不会启动,就可以自由拷贝。第二种方法的缺陷在于:如果有人知道了加解密方法,就可以自由自在地拷贝。
[0004]源代码就是公司(特别是一些软件公司)的根本,是员工辛勤努力工作的成果;如果技术源代码对外泄露,就会给公司带来巨大损失。

【发明内容】

[0005]本发明实际需要解决的技术问题是:针对现有技术中的不足,提供一种通过动态识别ID防止源代码拷贝的方法,通过将当前硬件设备ID与指定硬件设备ID进行比较,若不相同,则删除当前设备中的源代码,从而实现防止源代码被非法拷贝,降低了源代码被他人移植非法使用的风险。
[0006]本发明所解决的技术问题可以采用以下技术方案来实现:
[0007]—种通过动态识别ID防止源代码拷贝的方法,其特征在于:所述方法包括如下步骤:
[0008]I)首先建立静态链接库工程,并在静态链接库工程中创建用于检测硬件设备ID的检测线程函数,所述检测线程函数能实现在硬件设备ID不匹配时,删除硬件设备中的源代码的功能;
[0009]2)设置静态或全局变量来检测所述的检测线程函数是否在运行,所述静态或全局变量的赋初值为false ;
[0010]3)将源代码中耦合度低并且能执行到的公用函数移植到静态链接库中,然后在这些公用函数与静态变量关联;即当静态变量的值为false时,启动检测线程函数,同时将静态变量赋值为true,以实现线程监测函数只运行一次;
[0011]4)最后编译静态链接库工程生成LIB库文件,并把LIB库文件添加到源代码中,声明封装函数,删除封装函数原有的实现部分,直接编译源代码,即实现源代码的防拷贝功倉泛。
[0012]进一步的,所述硬件设备ID为由设备的CPU序列号、硬盘序列号、网卡MAC地址、域名信息形成的具有唯一性的可识别ID。
[0013]与现有技术相比,本发明的有益效果如下:[0014]1.隐蔽性高,通过在在静态链接库工程中创建用于检测硬件设备ID的检测线程函数,使得外人无法轻易擦觉。
[0015]2.安全性好,硬件设备ID为由设备的CPU序列号、硬盘序列号、网卡MAC地址、域名信息形成的具有唯一性的可识别ID,能有效防止的非法拷贝。
【专利附图】

【附图说明】
[0016]图1为本发明所述的防止源代码拷贝的方法的逻辑图。
【具体实施方式】
[0017]为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合【具体实施方式】,进一步阐述本发明。
[0018]本发明所述的本发明是一种通过动态识别计算机硬件设备ID防止源代码被拷贝的方法。首先建立静态链接库工程,并在链接库工程中创建能根据计算机硬件ID删除被拷贝源代码的线程函数,以及设置定义一个静态或全局变量来监测线程是否在运行,赋初值为false ;然后把整个代码工程中耦合度低并且能执行到的函数移植到静态链接库工程中,并在这些函数的开始根据设置的线程运行监测变量为false,来启动线程监测函数,以及把线程运行监测变量设置为true,以保证线程监测函数只运行一次就够了 ;最后编译静态链接库工程生成LIB库文件,并把LIB库文件添加到整套代码工程,声明封装函数,删除封装函数原有的实现部分,直接编译源代码工程,即可做到源代码的防拷贝功能。
[0019]在检测线程函数中,设置静态变量gRunning来记录检测线程函数是否正在运行,若检测线程函数正在运行则线程函数返回;若检测线程函数没有正在运行,则检测线程函数开始读取局域网主机指定硬件设备的ID,与指定的I D比较,若匹配则线程函数运行结束;若局域网络不通或局域网主机硬件设备I D不匹配,则继续读取本地工作计算机硬件设备ID与指定的ID比较,若匹配则线程函数运行结束;若不匹配,则线程函数自动扫描本地工作计算机存储设备,销毁存储设备被拷贝源代码。上述方法适用于编译结果是计算机可执行程序的源代码。如果编译结果是移动终端的目标程序,可以将上述思想应用于改进原有的编译程序,使源代码编译依赖于改进的编译程序即可,也就是说通过改进的编译程序在本地工作计算机上运行,达到动态监测识别计算机硬件设备ID或局域网主机硬件设备ID,从而实现销毁ID不匹配工作计算机存储设备上被拷贝源代码的目的。
[0020]实施例
[0021]参见图1,本发明的具体实施步骤如下:
[0022]101步建立静态链接库工程C0MM0NLIB ;
[0023]102步创建计算机硬件ID检测线程函数IDJCTF,此函数可以实现ID不匹配时,被拷贝源代码的删除功能;
[0024]103步设置静态变量gRunning来记录检测线程函数是否正在运行,赋初始值为false ;
[0025]104步将整套源代码工程(不妨记为ZTYDMGC)中必定能运行到的耦合度低的函数移植到C0MM0NLIB,这些函数不妨记为CF1、CF2、CF3、...;
[0026]105 步在函数 CFn (n=l, 2, 3,...)开始加入代码:IF (gRunning 为 false) {创建线程 IDJCTF:gRunning 赋值为 true;};
[0027]106步编译工程C0MM0NLIB生成LIB文件,不妨记为:C0MM0NLIB.LIB ;
[0028]107 步将 C0MM0NLIB.LIB 加入工程 ZTYDMGC 中,并作函数 CFn (n=l, 2,3,...)声明,原来CFn函数实现部分全部删除,直接编译ZTYDMGC即可实现防拷贝功能。
[0029]以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
【权利要求】
1.一种通过动态识别ID防止源代码拷贝的方法,其特征在于,所述方法包括如下步骤: 1)首先建立静态链接库工程,并在静态链接库工程中创建用于检测硬件设备ID的检测线程函数,所述检测线程函数能实现在硬件设备ID不匹配时,删除硬件设备中的源代码的功能; 2)设置静态或全局变量来检测所述的检测线程函数是否在运行,所述静态或全局变量的赋初值为false ; 3)将源代码中耦合度低并且能执行到的公用函数移植到静态链接库中,然后在这些公用函数与静态变量关联;即当静态变量的值为false时,启动检测线程函数,同时将静态变量赋值为true,以实现线程监测函数只运行一次; 4)最后编译静态链接库工程生成LIB库文件,并把LIB库文件添加到源代码中,声明封装函数,删除封装函数原有的实现部分,直接编译源代码,即实现源代码的防拷贝功能。
2.根据权利要求1所述的通过动态识别ID防止源代码拷贝的方法,其特征在于,所述硬件设备ID为由设备的CPU序列号、硬盘序列号、网卡MAC地址、域名信息形成的具有唯一性的可识别ID。
【文档编号】G06F21/12GK103500295SQ201310470089
【公开日】2014年1月8日 申请日期:2013年10月10日 优先权日:2013年10月10日
【发明者】周国瑞 申请人:上海理工大学, 上海出版印刷高等专科学校
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1