内存代码的完整性校验方法及装置制造方法及图纸

技术编号:16270363 阅读:38 留言:0更新日期:2017-09-22 22:00
本发明专利技术实施例公开了一种内存代码的完整性校验方法及装置,其中,所述方法包括:将预先设置的至少两个校验代码发送至客户端,以供所述客户端从所述校验代码中选取目标校验代码对所述客户端的指定内存代码进行校验;获取所述客户端返回的客户端校验结果,所述客户端校验结果中包括所述目标校验代码的返回值和唯一标识;根据所述目标校验代码的唯一标识将所述客户端校验结果与服务端对应的目标校验结果进行匹配;若所述客户端校验结果与所述目标校验结果一致,则确定所述客户端的内存代码通过完整性校验。本发明专利技术能够极大的提高HACK修改内存代码的门槛,确保客户端的内存代码完整性校验的准确率,提高安全性。

【技术实现步骤摘要】
内存代码的完整性校验方法及装置
本专利技术涉及互联网
,尤其涉及一种内存代码的完整性校验方法及装置。
技术介绍
随着智能移动终端功能的增强,其已经成为人们生活中的必备品。为了满足用户的各种需求,互联网上存在基于智能移动终端开发的各种各样的客户端应用软件,例如各种视频直播、阅读、游戏应用等。目前,对于终端设备的客户端软件其核心功能都在客户端软件代码中进行实现。比如对于一些客户端工具软件会有些收费功能,客户端逻辑中会判断当前用户是否是一个VIP用户,只有是VIP用户该功能才能够使用。而对于一些HACK通过反汇编方式逆向分析软件的这个功能的实现逻辑,通过修改客户端代码中对VIP判断的进程的内存代码,从而绕过了VIP用户的判断,使得非VIP用户也可以使用该功能。例如,对于网络游戏来说,HACK可以通过修改客户端内存中的代码来实现多种多样的游戏“外挂”功能,比如通过修改游戏中的碰撞检测逻辑,从而可以实现游戏角色的穿墙功能和格斗游戏的“无敌”功能,最终给游戏开发厂商带来了巨大的利益损失。再例如,对于直播软件客户端来说,HACK也可以通过修改内存代码来实现一些收费功能的破解。现有技术中,各个软件开发商都有对代码进行完整性检查,检查的方法大多都是通过一个HASH(HASH,就是把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值)函数来计算一段内存的HASH值,并将结果上报服务器,服务器来判断结果是否正确。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:现有技术中的内存代码的完整性校验方法采用单点校验,很容易被HACK绕过,具体的HACK通过修改校验的代码本身的逻辑从而绕过了对内存代码的HASH,可见,现有的内存代码的完整性校验方法仍然存在安全风险。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的内存代码的完整性校验方法及装置。本专利技术的一个方面,提供了一种内存代码的完整性校验方法,包括:将预先设置的至少两个校验代码发送至客户端,以供所述客户端从所述校验代码中选取目标校验代码对所述客户端的指定内存代码进行校验;获取所述客户端返回的客户端校验结果,所述客户端校验结果中包括所述目标校验代码的返回值和唯一标识;根据所述目标校验代码的唯一标识将所述客户端校验结果与服务端对应的目标校验结果进行匹配;若所述客户端校验结果与所述目标校验结果一致,则确定所述客户端的内存代码通过完整性校验。可选地,在所述将预先设置的至少两个校验代码发送至客户端之前,所述方法还包括:预先采用预设的校验算法生成对应的校验代码,并为每一校验代码设置有唯一标识;所述将预先设置的至少两个校验代码发送至客户端,具体包括:将带有唯一标识的各个校验代码打包后发送到客户端。可选地,所述将带有唯一标识的各个校验代码打包后发送到客户端,包括:将带有唯一标识的各个校验代码分别进行编译,获取每一校验代码对应的汇编代码;对各个校验代码对应的汇编代码进行加密,并将加密后的汇编代码打包后发送到所述客户端。可选地,所述方法还包括:对所述校验代码进行更新,和/或,对所述每一校验代码设置的唯一标识进行更新。可选地,所述客户端从所述校验代码中选取目标校验代码对所述客户端的指定内存代码进行校验,包括:所述客户端从所述校验代码中选取预设数量的目标校验代码分别对所述客户端的指定内存代码进行校验,或,所述客户端从所述校验代码中选取预设数量的目标校验代码并按照预设的校验逻辑对所述客户端的指定内存代码和其他校验代码进行校验。可选地,当所述客户端从所述校验代码中选取预设数量的目标校验代码分别对所述客户端的指定内存代码进行校验时,所述根据所述目标校验代码的唯一标识将所述客户端校验结果与服务端对应的目标校验结果进行匹配,包括:根据各个目标校验代码的唯一标识查找服务端预存的采用各个目标校验代码对完整的客户端进行校验的校验值;根据客户端校验结果中每一目标校验代码的返回值与各个目标校验代码对应的校验值进行匹配。本专利技术的另一个方面,提供了一种内存代码的完整性校验装置,包括:通信模块,用于将预先设置的至少两个校验代码发送至客户端,以供所述客户端从所述校验代码中选取目标校验代码对所述客户端的指定内存代码进行校验;获取模块,用于获取所述客户端返回的客户端校验结果,所述客户端校验结果中包括所述目标校验代码的返回值和唯一标识;匹配模块,用于根据所述目标校验代码的唯一标识将所述客户端校验结果与服务端对应的目标校验结果进行匹配;判定模块,用于若所述客户端校验结果与所述目标校验结果一致,则确定所述客户端的内存代码通过完整性校验。可选地,所述装置还包括:生成模块,用于在所述将预先设置的至少两个校验代码发送至客户端之前,预先采用预设的校验算法生成对应的校验代码,并为每一校验代码设置有唯一标识;所述通信模块,具体用于将带有唯一标识的各个校验代码打包后发送到客户端。可选地,所述通信模块包括:编译单元,用于将带有唯一标识的各个校验代码分别进行编译,获取每一校验代码对应的汇编代码;加密单元,用于对各个校验代码对应的汇编代码进行加密,并将加密后的汇编代码打包后发送到所述客户端。可选地,所述装置还包括:更新模块,用于对所述校验代码进行更新,和/或,对所述每一校验代码设置的唯一标识进行更新。本专利技术实施例提供的内存代码的完整性校验方法及装置,通过将校验内存的校验代码通过服务器下发到客户端,以供客户端根据接收到的校验代码进行完整性校验,实现在客户端的发布程序中无需携带固定的校验代码即可完成客户端的完整性校验,从而比较好的起到隐藏校验代码的功能,提高安全性;同时,本专利技术还能够比较方便的实现校验算法的随时更新,而且在下发的内存校验代码中,使用了多套校验代码去校验客户端的指定内存代码,从而极大的提高了HACK修改内存代码的门槛,进一步确保客户端完整性校验的准确率,提高安全性。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术实施例的一种内存代码的完整性校验方法的流程图;图2为本专利技术实施例的另一种内存代码的完整性校验方法的流程图;图3为本专利技术实施例的一种内存代码的完整性校验装置的结构示意图;图4为本专利技术实施例的另一种内存代码的完整性校验装置的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本
技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本专利技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该本文档来自技高网
...
内存代码的完整性校验方法及装置

【技术保护点】
一种内存代码的完整性校验方法,其特征在于,包括:将预先设置的至少两个校验代码发送至客户端,以供所述客户端从所述校验代码中选取目标校验代码对所述客户端的指定内存代码进行校验;获取所述客户端返回的客户端校验结果,所述客户端校验结果中包括所述目标校验代码的返回值和唯一标识;根据所述目标校验代码的唯一标识将所述客户端校验结果与服务端对应的目标校验结果进行匹配;若所述客户端校验结果与所述目标校验结果一致,则确定所述客户端的内存代码通过完整性校验。

【技术特征摘要】
1.一种内存代码的完整性校验方法,其特征在于,包括:将预先设置的至少两个校验代码发送至客户端,以供所述客户端从所述校验代码中选取目标校验代码对所述客户端的指定内存代码进行校验;获取所述客户端返回的客户端校验结果,所述客户端校验结果中包括所述目标校验代码的返回值和唯一标识;根据所述目标校验代码的唯一标识将所述客户端校验结果与服务端对应的目标校验结果进行匹配;若所述客户端校验结果与所述目标校验结果一致,则确定所述客户端的内存代码通过完整性校验。2.根据权利要求1所述的方法,其特征在于,在所述将预先设置的至少两个校验代码发送至客户端之前,所述方法还包括:预先采用预设的校验算法生成对应的校验代码,并为每一校验代码设置有唯一标识;所述将预先设置的至少两个校验代码发送至客户端,具体包括:将带有唯一标识的各个校验代码打包后发送到客户端。3.根据权利要求2所述的方法,其特征在于,所述将带有唯一标识的各个校验代码打包后发送到客户端,包括:将带有唯一标识的各个校验代码分别进行编译,获取每一校验代码对应的汇编代码;对各个校验代码对应的汇编代码进行加密,并将加密后的汇编代码打包后发送到所述客户端。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:对所述校验代码进行更新,和/或,对所述每一校验代码设置的唯一标识进行更新。5.根据权利要求1-4任一项所述的方法,其特征在于,所述客户端从所述校验代码中选取目标校验代码对所述客户端的指定内存代码进行校验,包括:所述客户端从所述校验代码中选取预设数量的目标校验代码分别对所述客户端的指定内存代码进行校验,或,所述客户端从所述校验代码中选取预设数量的目标校验代码并按照预设的校验逻辑对所述客户端的指定内存代码和其他校验代码进行校验。6.根据权利要求5所述的方法,其特征在于,当所述客...

【专利技术属性】
技术研发人员:周志刚张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

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

1