代码保护方法、装置、服务器及存储介质制造方法及图纸

技术编号:15792350 阅读:563 留言:0更新日期:2017-07-10 00:18
本发明专利技术实施例公开了一种代码保护方法、装置、服务器及存储介质,该方法包括:对第一文件进行解析,确定保护代码和非保护代码;添加特征计算代码、特征比对代码及条件分支代码,并为所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码分配地址空间;依据所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码构建固定代码块列表,计算并更新特征码;依据所述固定代码块列表和所述非保护代码生成第二文件。本方案提高了代码保护力度,降低了代码被篡改的风险。

【技术实现步骤摘要】
代码保护方法、装置、服务器及存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种代码保护方法、装置、服务器及存储介质。
技术介绍
计算机程序指一组指示计算机(或服务器设备)执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。为了防止对计算机程序进行篡改,可采用计算应用程序特征码的方式,当该应用程序被篡改,则对应的计算出的特征码改变,进而抛出异常以终止程序的运行。现有技术中,防止代码被篡改的方式存在缺陷,使得篡改人员可以轻易的进行破解,代码保护力度较差。
技术实现思路
本专利技术提供了一种代码保护方法、装置及存储介质,提高了代码保护力度,降低了代码被篡改的风险。第一方面,本专利技术实施例提供了一种代码保护方法,包括:对第一文件进行解析,确定保护代码和非保护代码;添加特征计算代码、特征比对代码及条件分支代码,并为所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码分配地址空间;依据所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码构建固定代码块列表,计算并更新特征码;依据所述固定代码块列表和所述非保护代码生成第二文件。第二方面,本专利技术实施例还提供了一种代码保护装置,包括:解析模块,用于对第一文件进行解析,确定保护代码和非保护代码;添加模块,添加特征计算代码、特征比对代码及条件分支代码;地址空间分配模块,用于为所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码分配地址空间;列表构建模块,用于依据所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码构建固定代码块列表;特征码计算更新模块,用于计算并更新特征码;合成模块,用于生成第二文件。第三方面,本专利技术实施例还提供了一种服务器,所述服务器包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述代码保护方法。第四方面,本专利技术实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种代码保护方法,其特征在于,该方法包括:对第一文件进行解析,确定保护代码和非保护代码;添加特征计算代码、特征比对代码及条件分支代码,并为所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码分配地址空间;依据所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码构建固定代码块列表,计算并更新特征码;依据所述固定代码块列表和所述非保护代码生成第二文件。本专利技术实施例提供的技术方案,通过对第一文件进行解析,确定保护代码和非保护代码;添加特征计算代码、特征比对代码及条件分支代码,并为所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码分配地址空间;依据所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码构建固定代码块列表,计算并更新特征码;依据所述固定代码块列表和所述非保护代码生成第二文件,对加载到内存中的代码进行验证,连同特征对比代码一起保护,提高了代码保护力度,降低了代码被篡改的风险。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1是本专利技术实施例一提供的代码保护方法的流程图;图2是本专利技术实施例二提供的代码保护方法的流程图;图3是本专利技术实施例三提供的代码保护方法的流程图;图4是本专利技术实施例五提供的代码保护装置的结构框图;图5是本专利技术实施例六提供的服务器的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1是本专利技术实施例一提供的代码保护方法的流程图,本实施例可适用于对软件程序进行保护的情况,该方法可以包含代码保护装置的服务器设备来执行,如图1所示,本实施例提供的具体方案如下:S101、对第一文件进行解析,确定保护代码和非保护代码。其中,第一文件可以是需要保护的防止被篡改的文件。保护代码可以是运行过程中的固定的代码段内容,示例性的,以windows平台下PE文件为例,解析出文件包含有_add代码段、_sub代码段和_wmain代码段,将_add代码段、_sub代码段和_wmain代码段确定为保护代码。其中,确定的保护代码包括:确定的第一文件中保护代码(_add代码段、_sub代码段和_wmain代码段)的各代码段的代码、相对虚拟地址和大小。S102、依据所述保护代码添加对应的特征计算代码、特征比对代码及条件分支代码,并为所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码分配地址空间。示例性的,特征计算代码包括计算所述保护代码的长度的代码,如:示例性的,特征计算方式还可以是随机选择保护代码中的某些代码字符,以用于后续比对。其中,特征比对代码用于比对特征计算代码确定出的特征码,举例而言,可以是比对特征计算代码确定出的特征码和预存的特征码。条件分支代码用于依据特征比对代码的比对结果进行相应条件分支的跳转,例如,比对结果一直则程序继续下一代码段的运行,若比对结果不一致则终止程序的运行。代码执行过程中,需要根据代码的存放地址找到相应的代码并依据代码的具体实现功能、指令进行对应的操作。本步骤中,在添加完毕特征计算代码、特征比对代码及条件分支代码后,相应的为特征计算代码、特征比对代码及条件分支代码分配地址空间以用于存放对应的代码内容。S103、依据所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码构建固定代码块列表,计算并更新特征码。特征计算代码用于计算该保护代码的特征码,特征比对代码用于进行特征码的比对,条件分支代码依据比对结果执行相应的条件,本步骤中,将保护代码、特征计算代码、特征比对代码及条件分支代码以列表的形式进行封装保存,而非采取在原有代码段基础上进行直接修改。在原有代码段基础上直接修改使得篡改人员很容易找到特征比对代码、条件分支代码等程序段,进而可直接屏蔽掉该代码段,也是的特征计算代码、特征比对代码及条件分支代码本身得不到适当的保护。S104、依据所述固定代码块列表和所述非保护代码生成第二文件。其中,第二文件为可执行文件,本步骤中将第一文件中非保护的代码以及其他格式类型的文件与S103构建的固定代码块列表进行整合,生成新的可执行文件第二文件,由此完成了对第一文件的代码保护。在生成第二文件的过程中,还包括利用特征计算代码计算保护代码的特征码,并将特征码进行保存用于在第二文件运行过程中进行特征码的比对以确定第二文件是否被篡改。本实施例提供了一种代码保护方法方法,对第一文件进行解析后,提取需要保护的代码,相应的添加该段保护代码的特征计算代码、特征比对代码及条件分支代码,通过构建固定代码块列表的形式,将保护代码、特征计算代码、特征比对代码及条件分支代码放入列表,提高了代码保护力度,降低了代码被篡改的风险。实施例二图2是本专利技术实施例二提供的一种代码保护方法的流程图,在上述实施例一的基础上,给出了一种具体的构建固定代码块列表的方式,可选的,所述依据所述保护代码、所述特本文档来自技高网...
代码保护方法、装置、服务器及存储介质

【技术保护点】
一种代码保护方法,其特征在于,包括:对第一文件进行解析,确定保护代码和非保护代码;添加特征计算代码、特征比对代码及条件分支代码,并为所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码分配地址空间;依据所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码构建固定代码块列表,计算并更新特征码;依据所述固定代码块列表和所述非保护代码生成第二文件。

【技术特征摘要】
1.一种代码保护方法,其特征在于,包括:对第一文件进行解析,确定保护代码和非保护代码;添加特征计算代码、特征比对代码及条件分支代码,并为所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码分配地址空间;依据所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码构建固定代码块列表,计算并更新特征码;依据所述固定代码块列表和所述非保护代码生成第二文件。2.根据权利要求1所述的方法,其特征在于,所述对第一文件进行解析,确定保护代码包括:将加载到内存中的运行过程中内容不变的代码确定为保护代码;确定所述保护代码的各代码段的代码、相对虚拟地址和大小。3.根据权利要求2所述的方法,其特征在于,所述条件分支代码用于:如果通过所述特征计算代码计算得到的结果特征码和固有特征码一致,则跳转至正确的执行路径,其中,所述固有特征码为计算并更新保存的标准数字。4.根据权利要求3所述的方法,其特征在于,所述依据所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码构建固定代码块列表包括:创建固定代码块列表;将所述保护代码、所述特征计算代码、所述特征比对代码及所述条件分支代码的起始地址和大小写入所述固定代码块列表中;添加所述固定代码块列表的结束标记。5.根据权利要求4所述的方法,其特征在于,所述依据所述固定代码块列表和所述非保护代码生成第二文件包括:在原保护代码的地址写入跳转指令,跳转到相应的条件分支代码;依据所述特征计算代码计算固定代码块列表的固有特征码,并将所述固有特征码写入对应的条件分支代码预设的固有特征码地址中;为所述固定代码块列表创建区段;按照第一文件的格式合成可执行的第二文件。6.一种代码保护装置,其特征在于,包括:解析模块,用于对第一文件进行解析,确定保护代码和非保护代码;添加模块,添加特征计算...

【专利技术属性】
技术研发人员:孙吉平李伟伟
申请(专利权)人:北京深思数盾科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1