识别及辅助识别客户端代码被篡改的方法及装置与流程

文档序号:18684981发布日期:2019-09-13 23:53阅读:365来源:国知局
识别及辅助识别客户端代码被篡改的方法及装置与流程
本申请涉及计算机领域,尤其涉及一种识别及辅助识别客户端代码被篡改的方法及装置。
背景技术
:目前H5(HTML5)是业界比较流行的跨平台解决方案,使用H5技术的游戏深受用户喜爱。但是使用H5技术的游戏的安全性一直困扰着业界。恶意用户可以轻松地在本地篡改客户端代码,改变游戏逻辑,从而上报虚假数据到后端服务器,破坏游戏的公平性,并攫取利益。目前大多采用如下方式来识别此类游戏逻辑是否被恶意用户篡改或破坏:在后端服务器预先设定一个用户操作结果的极限数据,当用户的实际操作结果超过该极限数据,则认为用户操作结果不合理,并认定该游戏逻辑已在客户端被篡改。上述采用极限数据的方式无法保证游戏的公平性,且大多数情况下,恶意用户篡改后的操作结果仍在极限数据范围内,此种情况下无法识别出该篡改行为。因此,已有的识别采用H5技术的游戏是否被篡改的方案不但无法保证游戏的公平性,而且无法有效识别出游戏逻辑是否被篡改。技术实现要素:本申请解决的技术问题之一是提供一种识别及辅助识别客户端代码被篡改的方法及装置,有效提高识别准确性。根据本申请一方面的一个实施例,提供了一种辅助识别客户端代码被篡改的方法,所述客户端代码为基于HTML5技术的客户端代码,所述方法包括:接收在基于HTML5技术的客户端代码运行过程中用户针对所述客户端代码的操作命令;记录所述操作命令及接收到所述操作命令时所述客户端代码所运行到的对应帧号,得到有效操作对应关系表;在所述客户端代码运行结束得到用户操作所述客户端代码的实际操作结果情况下,发送包含所述有效操作对应关系表的混合对应关系表及所述实际操作结果给服务器,以辅助所述服务器通过重放客户端代码并将记录的操作命令在对应帧号执行来得到重放操作结果,并基于重放操作结果与实际操作结果的比较来识别所述客户端代码是否被篡改。根据本申请另一方面的一个实施例,提供了一种识别客户端代码被篡改的方法,所述客户端代码为基于HTML5技术的客户端代码,所述方法包括:接收客户端发送的混合对应关系表及用户操作所述客户端代码的实际操作结果,所述混合对应关系表中包括:用户针对所述客户端代码的操作命令及接收到所述操作命令时所述客户端代码所运行到的对应帧号;通过重放所述客户端代码来确定用户针对所述客户端代码的操作命令在所述对应帧号执行得到的重放操作结果;比对所述实际操作结果与所述重放操作结果是否不一致;若不一致,则确定识别出所述客户端代码被篡改。根据本申请又一方面的一个实施例,提供了一种辅助识别客户端代码被篡改的装置,所述客户端代码为基于HTML5技术的客户端代码,所述装置包括:接收单元,用于接收在基于HTML5技术的客户端代码运行过程中用户针对所述客户端代码的操作命令;记录单元,用于记录所述操作命令及接收到所述操作命令时所述客户端代码所运行到的对应帧号,得到有效操作对应关系表;发送单元,用于在所述客户端代码运行结束得到用户操作所述客户端代码的实际操作结果情况下,发送包含所述有效操作对应关系表的混合对应关系表及所述实际操作结果给服务器,以辅助所述服务器通过重放客户端代码并将记录的操作命令在对应帧号执行来得到重放操作结果,并基于重放操作结果与实际操作结果的比较来识别所述客户端代码是否被篡改。根据本申请再一方面的一个实施例,提供了一种识别客户端代码被篡改的装置,所述客户端代码为基于HTML5技术的客户端代码,包括:接收单元,用于接收客户端发送的混合对应关系表及用户操作所述客户端代码的实际操作结果,所述混合对应关系表中包括:用户针对所述客户端代码的操作命令及接收到所述操作命令时所述客户端代码所运行到的对应帧号;重放单元,用于通过重放所述客户端代码来确定用户针对所述客户端代码的操作命令在所述对应帧号执行得到的重放操作结果比对单元,用于比对所述实际操作结果与所述重放操作结果是否不一致;识别单元,用于在所述比对单元比对所述实际操作结果与所述重放操作结果不一致情况下,确定识别出所述客户端代码被篡改。本申请实施例客户端通过记录用户操作命令及所述操作命令的对应帧号,并将该记录的操作命令及操作命令的对应帧号连同用户操作客户端代码的实际操作结果发送给服务器,实现客户端辅助服务器识别客户端代码是否被篡改。服务器通过重放所述客户端代码,来确定重放过程中用户的所述操作命令在对应帧号执行的重放操作结果,利用比对实际操作结果与重放操作结果是否一致来识别客户端代码是否在客户端被篡改。可见,若客户端代码在客户端被篡改,则服务器重放所述客户端代码时得到的重放操作结果必定与所述实际操作结果不一致,通过比对两结果即可准确识别出客户端代码是否在客户端被篡改。实现了在不影响用户体验的情况下,提高识别客户端代码被篡改的准确率。本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是根据本申请一个实施例的辅助识别客户端代码被篡改的方法的流程图。图2是根据本申请一个实施例的识别客户端代码被篡改的方法的流程图。图3是根据本申请另一个实施例的识别客户端代码被篡改的方法的流程图。图4是根据本申请一个实施例的辅助识别客户端代码被篡改的装置的结构示意图。图5是根据本申请一个实施例的识别客户端代码被篡改的装置的结构示意图。图6是根据本申请另一个实施例的识别客户端代码被篡改的装置的结构示意图。本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。具体实施方式在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本申请,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本申请。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的。但是本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。本申请实施例提供的识别客户端代码被篡改的方法适用于使用H5技术的客户端代码。本实施例中由安装所述客户端代码的客户端将用户操作命令及接收到所述操作命令时所述客户端代码所运行到的对应帧号以及用户操作所述客户端代码的实际操作结果上报给服务器,实现客户端辅助服务器识别客户端代码是否被篡改。服务器通过重放客户端代码并将记录的操作命令在对应帧号执行来得到重放操作结果,并基于重放操作结果与实际操作结果的比较来识别所述客户端代码是否被篡改。下面结合附图对本申请的技术方案作进一步详细描述。图1是根据本申请一个实施例的辅助识别客户端代码被篡改的方法的流程图,该方法由客户端来完成,主要包括如下步骤S110~S130:S110、接收在基于H5技术的客户端代码运行过程中用户针对所述客户端代码的操作命令。其中,所述的运行过程是指客户端代码进入记录成绩状态,例如,针对一款游戏,所述运行过程是指游戏开始后的状态,此状态下用户可对该游戏发出操作命令,游戏软件依据用户的操作命令计算用户的成绩,用户的成绩也就是用户操作该游戏的结果。接收用户针对所述客户端代码的操作命令包括所述客户端代码开始运行后,用户针对该客户端代码的所有操作命令。S120、记录所述操作命令及接收到所述操作命令时所述客户端代码所运行到的对应帧号,得到有效操作对应关系表。可以理解的是,在记录用户的所述操作命令前会对接收的该用户的操作命令进行识别,包括识别出该操作命令的类型。例如针对一款游戏,用户的操作命令的类型包括:上滑、下滑、向左、向右、加速、减速等等针对该游戏可执行的所有操作类型。另外,针对不同的客户端代码需识别的操作命令内容也会有所不同,需识别的操作命令的内容由影响计算该客户端代码成绩的参数相关,也就是在计算用户操作该客户端代码的成绩时,若用户操作命令的位置为计算成绩时的参数之一,则本实施例需识别并记录用户操作命令的位置;若用户操作命令的持续时长为计算成绩时的参数之一,则本申请实施例需识别并记录用户操作命令的持续时长。该用户操作命令的持续时长即一个命令持续的帧数。也就是,本申请实施例在识别用户操作命令时可根据计算客户端代码成绩的参数来决定需要识别的用户操作命令的内容,例如,该识别的用户操作命令的内容还可以包括:用户操作命令的位置、用户操作命令的持续时长、用户操作命令的加速度等等。在识别出该操作命令的类型及其他需识别的内容后记录识别出的内容。也就是本申请实施例所述的记录用户的操作命令包括记录识别出的该操作命令的类型等各项内容。同时还需记录接收到所述操作命令时所述客户端代码所运行到的对应帧号。也就是,记录该操作命令在客户端代码运行第几帧时接收到的。本申请实施例可通过有效操作对应关系表来保存所记录的用户的所述操作命令及所述操作命令的对应帧号。在客户端代码运行的整个过程中记录用户的所有操作命令及操作命令的对应帧号,生成有效操作对应关系表,通过该有效操作对应关系表服务器可以在重放所述客户端代码时获知用户在哪一帧对客户端代码执行了哪个操作命令。其中,在记录该用户的操作命令时,可为用户的操作命令添加有效操作标识。假设用户在客户端代码的第100帧点击了屏幕的某一位置,则将该点击操作以可识别格式记录下来,同时记录该点击操作位置信息,如记录该位置的坐标值。并记录该点击操作与客户端代码第100帧对应;若用户在客户端代码的第23帧向右滑动屏幕,则将该向右滑动操作以可识别格式记录下来,并记录该向右滑动操作与第23帧对应。则针对上述记录的两个操作命令生成的有效操作对应关系表内容如下:操作命令类型对应运行帧号位置标识右滑23—有效标识点击100坐标值有效标识上述步骤S110~S120均是在客户端代码运行过程中执行的,例如,针对一款游戏,是在游戏开始后结束前执行的。S130、在所述客户端代码运行结束得到用户操作所述客户端代码的实际操作结果情况下,发送包含所述有效操作对应关系表的混合对应关系表及所述实际操作结果给服务器,以辅助所述服务器通过重放客户端代码并将记录的操作命令在对应帧号执行来得到重放操作结果,并基于重放操作结果与实际操作结果的比较来识别所述客户端代码是否被篡改。发送混合对应关系表及所述实际操作结果给服务器的操作是在客户端代码运行结束得到用户操作所述客户端代码的实际操作结果(成绩)情况下执行。可选地,该步骤可在所述实际操作结果未展示在客户端屏幕上之前执行。例如,在一轮游戏结束后得到用户的成绩后执行。所述操作结果即用户操作所述客户端代码的成绩,例如,用户在一轮游戏中所得的分数。可知,所述混合对应关系表中包括所述有效操作对应关系表,则通过发送所述有效操作对应关系表及实际操作结果给服务器,服务器可以依据该有效操作对应关系表以及实际操作结果识别该客户端代码是否被篡改,实现了辅助服务器识别客户端代码被篡改的功能。对于服务器的识别过程详见下面实施例的描述。另外,由于某些情况下恶意用户有可能直接计算出最优操作命令集合(能够获得用户满意操作结果的操作集合),使得篡改后的客户端代码按照最优操作命令集合运行,从而得到最优操作结果。本申请实施例为避免该情况,在所述有效操作对应关系表中添加一些虚拟的无效操作命令及该无效操作命令的对应帧号,也就是在有效操作对应关系表中添加无效操作命令及无效操作命令的对应帧号,生成混合对应关系表。具体添加方法可以为:在所述客户端代码的指定帧号范围内随机加入虚拟的任一无效操作命令及无效操作命令的对应帧号。所述指定帧号范围例如可以为大于等于第10帧的范围内,当然本申请实施例并不局限于此。无效操作命令即并非用户实际发出的操作命令,该无效操作命令的类型可以为任一用户操作命令的类型,也可以为用户操作命令的类型之外的类型,例如,操作一款游戏的所有操作命令的类型中包括:单击,而不包含双击。则该无效操作命令可以为单击也可以为双击。另外,所添加的无效操作命令的对应帧号也可以为随机确定的帧号。为了将该加入的无效操作命令与接收的用户的操作命令区别开,本申请实施例可以为该添加的无效操作命令添加无效操作标识。在该混合对应关系表中通过有效操作标识和无效操作标识来识别实际接收的用户的操作命令和添加的无效操作命令。假设,添加的无效操作命令为双击,该双击操作对应的客户端代码的运行帧号为15,则添加后得到的混合对应关系表如下:操作命令类型对应运行帧号位置标识双击15无效标识右滑23—有效标识点击100坐标值有效标识本步骤中发送给服务器的用户操作所述客户端代码的实际操作结果即为客户端当前运行的客户端代码基于用户的操作命令计算得到的用户的实际成绩,该成绩的表现形式例如可以为成功或失败,或具体的分数等等。通过将上述混合对应关系表以及用户操作所述客户端代码的实际操作结果发送给服务器,可以辅助服务器识别所述客户端代码是否被篡改。图2为根据本申请一个实施例的识别客户端代码被篡改的方法的流程图,该方法由网络侧设备来完成,例如,网络侧服务器。主要包括如下步骤S210~S250:S210、接收客户端发送的混合对应关系表及用户操作所述客户端代码的实际操作结果。本申请实施例中所述的混合对应关系表中包括:用户针对所述客户端代码的操作命令及接收到所述操作命令时所述客户端代码所运行到的对应帧号。所述用户操作所述客户端代码的实际操作结果即,用户操作所述客户端代码的成绩,例如,用户在一轮游戏中所得的分数。S220、通过重放所述客户端代码来确定用户针对所述客户端代码的操作命令在所述对应帧号执行得到的重放操作结果。其中,由于用户操作所述客户端代码直到客户端代码结束需要一定的时间,若服务器按照客户端代码的正常运行方式重放所述客户端代码,则需要用户等待与操作客户端代码同样的时间,这样的体验是用户无法接受的。本申请实施例为了缩短重放时间,提升用户体验,以时间压缩机制来重放所述客户端代码。所述的时间压缩机制即,以客户端代码的帧数计时,通过增加单位时间的播放帧数重放所述客户端代码。例如,客户端代码正常运行时1秒大概播放60帧,在以时间压缩机制重放所述客户端代码时,可加速播放帧,使得1秒播放60000帧,使得客户端代码运行速度增加为原速度的上千倍,这样就解决了用户等待网络侧识别客户端代码是否被篡改的时间过长的问题。需要说明的是,本申请实施例中服务器端重放的客户端代码的版本与客户端运行的客户端代码的版本相同,且为服务器端本地保存的客户端代码。也就是保证服务器端重放的客户端代码与客户端未篡改前的客户端代码完全一致,即服务器端重放的客户端代码为未被篡改的正常客户端代码。重放所述客户端代码的目的在于可以获得所述客户端代码在未被篡改情况下用户执行同样的操作所得到的结果。因此,在以时间压缩机制重放所述客户端代码过程中,在客户端代码的对应帧号以用户针对所述客户端代码的操作命令作为输入,确定重放所述客户端代码过程中所述用户操作在对应帧号执行的重放操作结果,所述重放操作结果即为客户端代码未被篡改情况下的所述用户操作的正确的操作结果。具体的,获取混合对应关系表中的每条有效标识对应的记录,在重放所述客户端代码时若当前播放帧号与所述有效标识对应的记录的帧号一致,则将该条记录对应的用户操作命令作为当前重放过程当前帧号的输入命令,依照此方法重放完成整个客户端代码得到重放操作结果。可以理解的是,在重放过程中计算用户操作命令得到的重放操作结果的方法同客户端运行所述客户端代码时计算用户实际操作结果的方法相同。S230、比对所述实际操作结果与所述重放操作结果是否不一致。由于重放的所述客户端代码是与客户端的未被篡改的客户端代码完全一致的客户端代码,因此,重放过程中得到的重放操作结果为正确的操作结果,通过比对该重放操作结果是否与实际操作结果一致即可确定客户端的所述客户端代码是否被篡改。若不一致,则进入步骤S240,确定识别出所述客户端代码被篡改。在识别出客户端代码被篡改后可以提供识别出所述客户端代码被篡改相关的提示内容给所述客户端。例如提示客户端代码被篡改,和/或限制客户端代码的运行等等。若一致,则进入步骤S250,确定所述客户端代码未被篡改。本申请实施例通过获取用户操作命令及所述操作命令的对应帧号及实际操作结果,并通过重放所述客户端代码来确定在所述对应的所述客户端代码的运行帧号执行所述用户针对所述客户端代码的操作命令的重放操作结果,利用比对实际操作结果与重放操作结果是否一致来识别客户端代码是否被篡改,实现了在不影响用户体验的情况下,提高识别客户端代码被篡改的准确率。图3为根据本申请另一个实施例的识别客户端代码被篡改的方法的流程图,该方法由网络侧设备来完成,例如,网络侧服务器。主要包括如下步骤S310~S380:S310、接收客户端发送的混合对应关系表及用户操作所述客户端代码的实际操作结果。本申请实施例的所述混合对应关系表中包括::用户针对所述客户端代码的操作命令及接收到所述操作命令时所述客户端代码所运行到的对应帧号。所述用户操作所述客户端代码的实际操作结果即,用户操作所述客户端代码的成绩,例如,用户在一轮游戏中所得的分数。需要说明的是,由上面实施例的介绍可知,客户端发送给服务器的混合对应关系表中还可能包括无效操作命令及无效操作命令的对应帧号。S320、判断所述混合对应关系表中是否包括无效操作命令及所述无效操作命令的对应帧号。由于某些情况下恶意用户有可能直接计算出最优操作命令集合(或能够获得用户满意操作结果的操作命令集合),使得篡改后的客户端代码按照最优操作集合运行,从而得到最优操作结果。针对此情况,本申请实施例在接收的客户端发送的混合对应关系表中包含有添加的无效操作命令及所述无效操作命令的对应帧号生成混合对应关系表。因此,本步骤通过判断该混合对应关系表中是否包含该无效操作命令及与该无效操作命令的对应帧号,即可确定是否存在上述篡改情况。由于所述混合对应关系表中记录的无效操作命令及所述无效操作命令的对应帧号添加有无效操作标识,因此本步骤可通过查找该混合对应关系表中是否存在无效操作标识来判断所述混合对应关系表中是否包括无效操作命令及所述无效操作命令的对应帧号。若所述混合对应关系表中不包含无效操作命令及所述无效操作命令的对应帧号,则进入步骤S330,确定所述客户端代码被篡改。也就是,若该混合对应关系表中不包含无效操作命令及所述无效操作命令的对应帧号,则确定识别出客户端代码被恶意用户计算出最优操作命令集合并篡改。此种情况下可快速识别出客户端代码是否被篡改。若所述混合对应关系表中包含无效操作命令及所述无效操作命令的对应帧号,则进入步骤S340。S340、过滤掉所述混合对应关系表中的无效操作命令及所述无效操作命令的对应帧号。其中,可通过无效操作标识来识别出所述混合对应关系表中的无效操作命令,并将识别出的无效操作命令过滤掉。过滤掉掉无效操作命令后的混合对应关系表中仅包含用户针对该客户端代码的操作命令及该操作命令对应的客户端代码的运行帧号,也就是过滤后得到有效操作对应关系表。后续可依据该有效操作对应关系表通过重放该客户端代码来识别客户端代码是否被篡改。即之后执行步骤S350~S380,该S350~S380与步骤S220~S250一致,因此此处不再赘述。本申请实施例相对上面的实施例通过获取混合对应关系表,识别该混合对应关系表中是否包含虚拟的无效操作及无效操作命令的对应帧号,可识别出客户端代码是否在客户端被计算出最优操作集合并被篡改。因此,本申请实施例可以更快速的识别出客户端代码被恶意用户以最优操作集合的方式篡改。本申请实施例还提供一种与上述辅助识别客户端代码被篡改的方法对应的辅助识别客户端代码被篡改的装置,如图4中所示为所述装置一种实施例结构示意图,该装置主要包括:接收单元410,用于接收在基于HTML5技术的客户端代码运行过程中用户针对所述客户端代码的操作命令;记录单元420,用于记录所述操作命令及接收到所述操作命令时所述客户端代码所运行到的对应帧号,得到有效操作对应关系表;发送单元430,用于在所述客户端代码运行结束得到用户操作所述客户端代码的实际操作结果情况下,发送包含所述有效操作对应关系表的混合对应关系表及所述实际操作结果给服务器,以辅助所述服务器通过重放客户端代码并将记录的操作命令在对应帧号执行来得到重放操作结果,并基于重放操作结果与实际操作结果的比较来识别所述客户端代码是否被篡改。所述记录单元420被配置为:为所述操作命令添加有效操作标识。所述混合对应关系表中还可能包括:无效操作命令及所述无效操作命令的对应帧号,则对应的所述装置还包括:无效操作添加单元,用于在所述有效对应关系表中添加的无效操作命令及所述无效操作命令的对应帧号,得到所述混合对应关系表。该无效操作加入单元还被配置为添加的无效操作命令添加无效操作标识。本申请实施例还提供一种与上述识别客户端代码被篡改的方法对应的识别客户端代码被篡改的装置,如图5中所示为所述装置一种实施例结构示意图,该装置主要包括:接收单元510,用于接收客户端发送的混合对应关系表及用户操作所述客户端代码的实际操作结果,所述混合对应关系表中包括:用户针对所述客户端代码的操作命令及接收到所述操作命令时所述客户端代码所运行到的对应帧号;重放单元520,用于通过重放所述客户端代码来确定用户针对所述客户端代码的操作命令在所述对应帧号执行得到的重放操作结果;比对单元530,用于比对所述实际操作结果与所述重放操作结果是否不一致;识别单元540,用于在所述比对单元530比对所述实际操作结果与所述重放操作结果不一致情况下,确定识别出所述客户端代码被篡改。其中,所述重放单元520以时间压缩机制重放所述客户端代码,具体的以客户端代码的帧数计时,通过增加单位时间的播放帧数重放所述客户端代码。所述重放单元520重放的所述客户端代码为本地保存的与所述客户端运行的版本相同的客户端代码。可选地,如图6中所示,所述装置还包括:判断单元550,用于判断所述混合对应关系表中是否包括无效操作命令及所述无效操作命令的对应帧号。对应的所述识别单元540被配置为:若判断单元550判断所述混合对应关系表中不包括所述无效操作命令及所述操作命令的对应帧号,则确定所述客户端代码在所述客户端被篡改。所述装置还包括:过滤单元560,用于在所述判断单元550判断所述混合对应关系表中包括所述无效操作命令及所述操作命令的对应帧号的情况下,过滤掉所述无效操作命令及所述操作命令的对应帧号。综上所述,本申请实施例客户端通过记录用户操作命令及所述操作命令的对应帧号,并将该记录的操作命令及操作命令的对应帧号连同用户操作客户端代码的实际操作结果发送给服务器,实现客户端辅助服务器识别客户端代码是否被篡改。服务器通过重放所述客户端代码,来确定重放过程中用户的所述操作命令在对应帧号执行的重放操作结果,利用比对实际操作结果与重放操作结果是否一致来识别客户端代码是否在客户端被篡改。可见,若客户端代码在客户端被篡改,则服务器重放所述客户端代码时得到的重放操作结果必定与所述实际操作结果不一致,通过比对两结果即可准确识别出客户端代码是否在客户端被篡改。实现了在不影响用户体验的情况下,提高识别客户端代码被篡改的准确率。需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1