软件的防篡改验证方法及装置制造方法

文档序号:6504520阅读:181来源:国知局
软件的防篡改验证方法及装置制造方法
【专利摘要】本发明适用于计算机【技术领域】,提供了软件的防篡改验证方法,包括:接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定;执行所述验证参数对应的验证逻辑,获取第一校验值;将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。在本发明中,一旦软件遭到了篡改,能够准确地识别出结果,有效地提高了对软件是否遭到了篡改的验证结果的准确性。
【专利说明】软件的防篡改验证方法及装置

【技术领域】
[0001]本发明属于计算机【技术领域】,尤其涉及一种软件的防篡改验证方法及装置。

【背景技术】
[0002]目前,数字化的生活方式得到了广泛的推广与普及,人们的日常工作、学习及休闲生活越来越离不开各式各样的应用软件,而软件的安全问题也由此得到了重视。
[0003]出于窃取用户隐私、盗取用户银行账户信息等目的,一些攻击者能够通过篡改软件的方法,在软件中嵌入恶意代码、修改或者删除部分代码,从而获取到用户的关键信息,从中获利。软件篡改在游戏类、支付类或者社交类软件中出现的尤为频繁,为了防止此类现象的出现,需要对安装在终端设备中的软件进行验证。
[0004]现有的软件防篡改软件验证方法只能通过对软件的全部或者部分数据进行校验,判断校验结果是否正确,以此来判定软件是否遭到了篡改。然而,由于用于校验的软件数据是固定不变的,其正确的校验结果也很容易被攻击者得知,并以此伪造校验结果通过软件验证,导致软件验证的结果不准确,由此带来了数据安全隐患。


【发明内容】

[0005]本发明实施例提供一种软件的防篡改验证方法,旨在提高对软件是否遭到了篡改的验证结果的准确性。
[0006]本发明实施例是这样实现的,一种软件的防篡改验证方法,包括:
[0007]接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定;
[0008]执行所述验证参数对应的验证逻辑,获取第一校验值;
[0009]将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
[0010]本发明实施例的另一目的在于提供一种软件的防篡改验证方法,包括:
[0011]动态确定所述软件的验证参数;
[0012]向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值;
[0013]接收所述客户端返回的所述第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值;
[0014]当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
[0015]本发明实施例的另一目的在于提供一种软件的防篡改验证装置,包括:
[0016]指令接收单元,用于接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定;
[0017]获取单元,用于执行所述验证参数对应的验证逻辑,获取第一校验值;
[0018]返回单元,用于将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
[0019]本发明实施例的另一目的在于提供一种软件的防篡改验证装置,包括:
[0020]动态确定单元,用于动态确定所述软件的验证参数;
[0021 ] 指令发送单元,用于向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值;
[0022]判断单元,用于接收所述客户端返回的所述第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值;
[0023]验证结果确定单元,用于当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
[0024]本发明实施例在软件的防篡改验证过程中,由该软件的服务器端动态地确定验证参数,由此,该软件的客户端生成的验证结果也根据验证参数的不同而不同,从而避免了验证结果的唯一性,一旦软件遭到了篡改,通过本发明实施例提供的方法即能够准确地识别出结果,有效地提高了对软件是否遭到了篡改的验证结果的准确性。

【专利附图】

【附图说明】
[0025]图1是本发明实施例提供的软件的防篡改验证方法客户端的实现流程图;
[0026]图2是本发明实施例提供的软件的防篡改验证方法内存映射区间数据分布情况的不意图;
[0027]图3是本发明实施例提供的软件的防篡改验证方法服务器端的实现流程图;
[0028]图4是本发明实施例提供的软件的防篡改验证装置的结构框图。

【具体实施方式】
[0029]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0030]本发明实施例在软件的防篡改验证过程中,由该软件的服务器端动态地确定验证参数,由此,该软件的客户端生成的验证结果也根据验证参数的不同而不同,从而避免了验证结果的唯一性,一旦软件遭到了篡改,通过本发明实施例提供的方法即能够准确地识别出结果,有效地提高了对软件是否遭到了篡改的验证结果的准确性。
[0031]具体地,本发明实施例中提及的进行防篡改验证的软件均为具备与其客户端对应的服务器端的软件。该软件的客户端可以安装在手机、个人计算机、平板电脑、笔记本电脑等具备网络接入功能的终端设备上,能够通过互联网与其服务器进行通信,而该服务器能够实现的功能包括但不限于:管理其客户端的用户数据、转发其不同客户端之间的数据、向其客户端发布该软件的新版本等。
[0032]图1示出了本发明实施例提供的软件的防篡改验证方法的实现流程,在本实施例中,流程的执行主体为进行防篡改验证的软件的客户端,实现流程详述如下:
[0033]在SlOl中,接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定。
[0034]在本实施例中,客户端触发对软件的防篡改验证可以通过以下方式实现:
[0035]由服务器向客户端发送验证控制指令,从而触发客户端开始执行对软件的防篡改验证;或者,
[0036]由客户端向服务器发送验证请求,从而触发客户端开始执行对软件的防自发验证,包括:
[0037]客户端每隔预设的时间间隔向服务器发送验证请求;或者,
[0038]客户端在预约的时间点向服务器发送验证请求;或者,
[0039]客户端通过用户端输入的触发指令向服务器发送验证请求。
[0040]无论上述任何一种情况,服务器均会向客户端发送验证控制指令,该验证控制指令中携带了用于指示客户端如何进行软件的防篡改验证的验证参数,每一种验证参数均对应了一种验证逻辑,通过在软件开发过程中,在服务器和客户端约定好每一种验证参数与其对应的验证逻辑的关系,客户端即可以根据验证控制指令中的验证参数来执行对应的验证逻辑。
[0041]在本实施例中,生成何种验证参数,且生成的验证参数取值如何,均由服务器动态随机地来确定。
[0042]其中,验证参数可以包括采样数据获取位置,该验证参数即为由客户端从该采样数据获取位置获取到采样数据,并通过指定的校验算法对获取到的采样数据进行计算,以得到第一校验值。
[0043]当验证参数包括采样数据获取位置时,作为本发明的一个实施例,该采样数据获取位置包括该软件的客户端在其所在终端设备中的安装目录下的文件路径,当该文件路径指向该安装目录下的一个文件时,表明当前需要采样的数据为该文件中的数据,而当该文件路径指向该安装目录下的一个文件夹时,则表明当前需要采样的数据为该文件夹中的全部数据。由于对于软件开发人员来说,软件客户端在终端设备中的安装目录文件结构及相应的文件内容是可知的,因此,在服务器中能够预存储其客户端的安装目录下的所有文件结构及相应的文件内容,服务器能够在其客户端的安装目录下随机地指定一个或者多个文件路径,从而动态地确定出采样数据获取位置。
[0044]当验证参数包括采样数据获取位置时,作为本发明的另一实施例,该采样数据获取位置包括内存映射区间,该内存映射区间具体为客户端所在终端设备中的内存映射区间。由于对于软件开发人员来说,软件客户端在终端设备上运行时,对该终端设备的内存空间占用情况是可知的,如图2所示,其即为运行在Android设备上的软件在运行时,该Android设备中内存映射区间的情况示意图,其中的第一列即为每一个内存映射区间的地址,而最后一列即为相应的内存映射区间中的数据。因此,在服务器中能够预存储当客户端在运行时终端设备的每个内存映射区间内的数据内容,服务器能够随机地指定一个或者多个内存映射区间,从而动态地确定出采样数据获取位置。
[0045]需要说明的是,针对不同操作系统的终端设备,包括运行Android、1S或者WP8(Windows Phone8)等操作系统的终端设备,相同的软件在运行时,单位内存映射区间内的数据是相同的,只可能是相同的数据所分布的内存映射区间的位置不同,因此,服务器需要针对每一种操作系统,预存储当客户端在运行时使用该操作系统的终端设备的每个内存映射区间内的数据内容。
[0046]同时,在本实施例中,服务器动态确定的采样数据位置也可以同时包括内存映射区间和软件的安装目录下的文件路径,从而进一步保证采样数据的随机性。
[0047]此外,验证参数还可以包括可执行代码,则该验证参数所对应的验证逻辑即为由客户端执行该段可执行代码,并将通过执行该段可执行代码所输出的值作为第一校验值。例如,该段可执行代码在执行时被用于调用软件的其中一个功能,并输出在调用该功能时所生成的数据结果,在软件未被篡改的情况下,调用该功能所生成的数据结果均是相同的,因此,该数据结果能够被作为第一校验值,用于判断软件是否遭到了篡改。又例如,当软件为游戏类软件或者试用版软件时,该段可执行代码可以在执行时被用于输出软件所在终端设备的当前系统时间,由于游戏类或者试用版软件会以当前系统时间作为软件是否继续被使用的判决标准,因此,将当前系统时间作为第一校验值,若软件通过篡改从而在非法或者未授权情况下继续使用时,即可以通过该第一校验值判断出来。
[0048]在本发明实施例中,服务器动态确定的验证参数及其对应的验证逻辑包括但不限于上述几种情形,只要能够保证客户端通过执行验证参数对应的验证逻辑所得到的正确的校验值对该验证参数来说是唯一的即可,在此不一一限定。
[0049]在S102中,执行所述验证参数对应的验证逻辑,获取第一校验值。
[0050]在本实施例中,当验证参数包括采样数据获取位置时,客户端根据服务器的控制验证指令中所携带的采样数据获取位置,从该位置上获取到本次验证所需要的采样数据,并根据指定的校验算法对获取到的采样数据计算第一校验值。
[0051]作为本发明的一个实施例,当采样数据获取位置包括所述软件的安装目录下的文件路径时,从所述采样数据获取位置获取采样数据具体为:
[0052]提取所述文件路径指向的文件,将所述文件包含的数据确定为所述采样数据。
[0053]作为本发明的另一实施例,当采样数据获取位置包括内存映射区间时,从所述采样数据获取位置获取采样数据具体为:
[0054]在所述软件运行时,读取所述内存映射区间中的数据,将读取到的数据确定为所述采样数据。
[0055]在本实施例中,从服务器动态确定的采样数据获取位置上获取到的采样数据根据采样数据获取位置的不同,可以为图片、字符串、代码等任意形式的数据。
[0056]作为本发明的一个实施例,验证所采用的校验算法可以在软件开发过程中同时在服务器与客户端预置,从而保证服务器和客户端约定好相同的校验算法。
[0057]作为本发明的另一实施例,验证所采用的校验算法也可以在每次验证之前由服务器动态地确定并通知给客户端,具体地,服务器可以在N种预设的校验算法中随机确定一种,并作为验证参数之一携带在验证控制指令中,与采样数据获取位置一并发送给客户端,其中,N为大于I的整数。
[0058]作为本发明的一个实现示例,校验算法可以为哈希(Hash)算法。若校验算法用f()表示,而采样数据用S表示,当服务器动态指示了多个采样数据获取位置时,客户端从这些采样数据获取位置上分别获取到采样数据S1、S2、S3、……,则相应地,最终得到的第一校验值为 f (S1、S2、S3、......)。
[0059]在S103中,将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
[0060]在本实施例中,当客户端计算出第一校验值后,将该第一校验值返回给服务器,而在服务器端预存储了其动态确定的验证参数所对应的正确校验值,即第二校验值,因此,月艮务器通过判断客户端返回的第一校验值与服务器预存储的第二校验值是否一致,即可以判断出该软件客户端是否遭到了篡改。
[0061]图3示出了本发明实施例提供的软件的防篡改验证方法的实现流程,在本实施例中,流程的执行主体为进行防篡改验证的软件的服务器端,实现流程详述如下:
[0062]在S301中,动态确定所述软件的验证参数。
[0063]在本实施例中,当需要验证软件客户端是否遭到了篡改时,服务器首先需要动态确定本次验证的验证参数。
[0064]在本实施例中,S301可以在以下条件下触发:
[0065]服务器每隔预设的时间间隔触发;或者,
[0066]服务器在预约的时间点触发;或者,
[0067]服务器接收到来自客户端的验证请求后触发。
[0068]在本实施例中,每一种验证参数均对应了一种验证逻辑,通过在软件开发过程中,在服务器和客户端约定好每一种验证参数与其对应的验证逻辑的关系,客户端即可以根据验证控制指令中的验证参数来执行对应的验证逻辑。
[0069]在本实施例中,生成何种验证参数,且生成的验证参数取值如何,均由服务器动态随机地来确定。
[0070]当验证参数包括采样数据获取位置时,作为本发明的一个实施例,该采样数据获取位置包括该软件的客户端在其所在终端设备中的安装目录下的文件路径,当该文件路径指向该安装目录下的一个文件时,表明当前需要采样的数据为该文件中的数据,而当该文件路径指向该安装目录下的一个文件夹时,则表明当前需要采样的数据为该文件夹中的全部数据。由于对于软件开发人员来说,软件客户端在终端设备中的安装目录文件结构及相应的文件内容是可知的,因此,在服务器中能够预存储其客户端的安装目录下的所有文件结构及相应的文件内容,服务器能够在其客户端的安装目录下随机地指定一个或者多个文件路径,从而动态地确定出采样数据获取位置。
[0071]当验证参数包括采样数据获取位置时,作为本发明的另一实施例,该采样数据获取位置包括内存映射区间,该内存映射区间具体为客户端所在终端设备中的内存映射区间。由于对于软件开发人员来说,软件客户端在终端设备上运行时,对该终端设备的内存空间占用情况是可知的,因此,在服务器中能够预存储当客户端在运行时终端设备的每个内存映射区间内的数据内容,服务器能够随机地指定一个或者多个内存映射区间,从而动态地确定出采样数据获取位置。
[0072]同时,在本实施例中,服务器动态确定的采样数据位置也可以同时包括内存映射区间和软件的安装目录下的文件路径,从而进一步保证采样数据的随机性。
[0073]此外,验证参数还可以包括可执行代码,则该验证参数所对应的验证逻辑即为由客户端执行该段可执行代码,并将通过执行该段可执行代码所输出的值作为第一校验值。例如,该段可执行代码在执行时被用于调用软件的其中一个功能,并输出在调用该功能时所生成的数据结果,在软件未被篡改的情况下,调用该功能所生成的数据结果均是相同的,因此,该数据结果能够被作为第一校验值,用于判断软件是否遭到了篡改。又例如,当软件为游戏类软件或者试用版软件时,该段可执行代码可以在执行时被用于输出软件所在终端设备的当前系统时间,由于游戏类或者试用版软件会以当前系统时间作为软件是否继续被使用的判决标准,因此,将当前系统时间作为第一校验值,若软件通过篡改从而在非法或者未授权情况下继续使用时,即可以通过该第一校验值判断出来。
[0074]在本发明实施例中,服务器动态确定的验证参数及其对应的验证逻辑包括但不限于上述几种情形,只要能够保证客户端通过执行验证参数对应的验证逻辑所得到的正确的校验值对该验证参数来说是唯一的即可,在此不一一限定。
[0075]在S302中,向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值。
[0076]在本实施例中,当服务器动态确定了验证参数之后,便向客户端发送携带了验证参数的验证控制指令,以使得客户端根据前述实施例S102所述,执行该验证参数对应的验证逻辑,获取到第一校验值,具体的计算方法再此不再赘述。
[0077]在S303中,接收所述客户端返回的第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
[0078]在本实施例中,当客户端计算出第一校验值后,将该第一校验值返回给服务器,而在服务器端,由于其预存储了其动态确定的验证参数对应的正确校验值,因此,服务器通过判断客户端返回的第一校验值与第二校验值是否一致,即可以判断出该软件客户端是否遭到了篡改。
[0079]在本实施例中,当验证参数包括采样数据获取位置时,客户端计算获取到的采样数据时所采用的校验算法可以在软件开发过程中同时在服务器与客户端预置,从而保证服务器和客户端约定好相同的校验算法,也可以在每次验证之前由服务器动态地确定并通知给客户端,即,在S302之前,服务器端还需要执行:
[0080]随机将N种预设的校验算法中的一种确定为所述指定的校验算法,所述N为大于等于I的整数
[0081]由此,服务器可以在N种预设的校验算法中随机确定一种,并作为验证参数之一携带在验证控制指令中,与采样数据获取位置一并发送给客户端。
[0082]在S304中,当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
[0083]在本实施例中,由于不同的数据内容的校验结果是唯一的,因此,当软件客户端遭到了篡改之后,S303会得到第一校验值与第二校验值不相同的判断结果,由此来完成对软件是否遭到了篡改的验证。
[0084]本发明实施例在软件的防篡改验证过程中,由该软件的服务器端动态地确定验证参数,由此,该软件的客户端生成的验证结果也根据验证参数的不同而不同,从而避免了验证结果的唯一性,一旦软件遭到了篡改,通过本发明实施例提供的方法即能够准确地识别出结果,有效地提高了对软件是否遭到了篡改的验证结果的准确性。
[0085]图4示出了本发明实施例提供的软件的防篡改验证装置的结构框图,该装置可以分别位于软件的客户端和服务器端中,用于分别运行本发明图1实施例和图3实施例所述的软件的防篡改验证方法。为了便于说明,仅示出了与本实施例相关的部分。
[0086]参照图4,在软件的客户端,该装置包括:
[0087]指令接收单元41,接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定。
[0088]获取单元42,执行所述验证参数对应的验证逻辑,获取第一校验值。
[0089]返回单元43,将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
[0090]可选地,所述验证参数包括采样数据获取位置,
[0091]所述获取单元42包括:
[0092]采样子单元,从所述采样数据获取位置获取采样数据。
[0093]计算子单元,根据指定的校验算法对获取到的采样数据计算所述第一校验值。
[0094]可选地,所述采样数据获取位置包括所述软件的安装目录下的文件路径;
[0095]所述采样子单元具体用于:
[0096]提取所述文件路径指向的文件,将所述文件包含的数据确定为所述采样数据。
[0097]可选地,所述采样数据获取位置包括内存映射区间;
[0098]所述采样子单元具体用于:
[0099]在所述软件运行时,读取所述内存映射区间中的数据,将读取到的数据确定为所述采样数据。
[0100]可选地,所述验证参数还包括所述指定的校验算法,所述指定的校验算法为所述服务器在N种预设的校验算法中随机确定的一种,所述N为大于I的整数。
[0101]可选地,所述验证参数包括可执行代码,
[0102]所述获取单元42具体用于:
[0103]执行所述可执行代码,输出所述第一校验值。
[0104]可选地,所述装置还包括:
[0105]请求发送单元,向所述服务器发送验证请求,以使所述服务器发送所述验证控制指令。
[0106]在软件的服务器端,该装置包括:
[0107]动态确定单元44,动态确定所述软件的验证参数。
[0108]指令发送单元45,向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值。
[0109]判断单元46,接收所述客户端返回的所述第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
[0110]验证结果确定单元47,当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
[0111]可选地,所述验证参数包括采样数据获取位置,所述采样数据获取位置包括所述软件的安装目录下的文件路径或者内存映射区间。
[0112]可选地,所述验证参数还包括所述指定的校验算法,所述指定的校验算法被所述客户端用于对在所述采样数据获取位置获取到的采样数据计算所述第一校验值,
[0113]所述装置还包括:
[0114]算法确定单元,随机将N种预设的校验算法中的一种确定为所述指定的校验算法,所述N为大于等于I的整数。
[0115]可选地,所述验证参数包括可执行代码,所述可执行代码被所述客户端用于在执行后输出所述第一校验值。
[0116]可选地,所述装置还包括:
[0117]请求接收单元,用于接收所述客户端发送的验证请求。
[0118]本发明实施例在软件的防篡改验证过程中,由该软件的服务器端动态地确定验证参数,由此,该软件的客户端生成的验证结果也根据验证参数的不同而不同,从而避免了验证结果的唯一性,一旦软件遭到了篡改,通过本发明实施例提供的方法即能够准确地识别出结果,有效地提高了对软件是否遭到了篡改的验证结果的准确性。
[0119]同时,采用本发明实施例提供的方法及装置,能够有效地进行软件的自身安全和软件的安装环境安全检测,尤其是对于交易类软件、通信类软件等前后台交互类型的软件,能够有效地防止软件被篡改,达到很好的数据保护效果。
[0120]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种软件的防篡改验证方法,其特征在于,包括: 接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定; 执行所述验证参数对应的验证逻辑,获取第一校验值; 将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
2.如权利要求1所述的方法,其特征在于,所述验证参数包括采样数据获取位置, 所述执行所述验证参数对应的验证逻辑,获取第一校验值包括: 从所述采样数据获取位置获取采样数据; 根据指定的校验算法对获取到的采样数据计算所述第一校验值。
3.如权利要求2所述的方法,其特征在于,所述采样数据获取位置包括所述软件的安装目录下的文件路径, 所述从所述采样数据获取位置获取采样数据包括: 提取所述文件路径指向的文件,将所述文件包含的数据确定为所述采样数据。
4.如权利要求2所述的方法,其特征在于,所述采样数据获取位置包括内存映射区间, 所述从所述采样数据获取位置获取采样数据包括: 在所述软件运行时,读取所述内存映射区间中的数据,将读取到的数据确定为所述采样数据。
5.如权利要求2?4任一项所述的方法,其特征在于,所述验证参数还包括所述指定的校验算法,所述指定的校验算法为所述服务器在N种预设的校验算法中随机确定的一种,所述N为大于I的整数。
6.如权利要求1所述的方法,其特征在于,所述验证参数包括可执行代码, 所述执行所述验证参数对应的验证逻辑,获取第一校验值包括: 执行所述可执行代码,输出所述第一校验值。
7.如权利要求1所述的方法,其特征在于,在所述接收服务器发送的验证控制指令之前,所述方法还包括: 向所述服务器发送验证请求,以使所述服务器发送所述验证控制指令。
8.一种软件的防篡改验证方法,其特征在于,包括: 动态确定所述软件的验证参数; 向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值; 接收所述客户端返回的所述第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值; 当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
9.如权利要求8所述的方法,其特征在于,所述验证参数包括采样数据获取位置,所述采样数据获取位置包括所述软件的安装目录下的文件路径或者内存映射区间。
10.如权利要求9所述的方法,其特征在于,所述验证参数还包括所述指定的校验算法,所述指定的校验算法被所述客户端用于对在所述采样数据获取位置获取到的采样数据计算所述第一校验值, 则在所述向客户端发送验证控制指令之前,所述方法还包括: 随机将N种预设的校验算法中的一种确定为所述指定的校验算法,所述N为大于等于I的整数。
11.如权利要求8所述的方法,其特征在于,所述验证参数包括可执行代码,所述可执行代码被所述客户端用于在执行后输出所述第一校验值。
12.如权利要求8?11任一项所述的方法,其特征在于,在所述向客户端发送验证控制指令之前,所述方法还包括: 接收所述客户端发送的验证请求。
13.一种软件的防篡改验证装置,其特征在于,包括: 指令接收单元,用于接收服务器发送的验证控制指令,所述验证控制指令携带了所述软件的验证参数,所述验证参数由所述服务器动态确定; 获取单元,用于执行所述验证参数对应的验证逻辑,获取第一校验值; 返回单元,用于将所述第一校验值返回给所述服务器,以使所述服务器通过比较所述第一校验值和第二校验值确定所述软件是否被篡改,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值。
14.如权利要求13所述的装置,其特征在于,所述验证参数包括采样数据获取位置, 所述获取单元包括: 采样子单元,用于从所述采样数据获取位置获取采样数据; 计算子单元,用于根据指定的校验算法对获取到的采样数据计算所述第一校验值。
15.如权利要求14所述的装置,其特征在于,所述采样数据获取位置包括所述软件的安装目录下的文件路径, 所述采样子单元具体用于: 提取所述文件路径指向的文件,将所述文件包含的数据确定为所述采样数据。
16.如权利要求14所述的装置,其特征在于,所述采样数据获取位置包括内存映射区间, 所述采样子单元具体用于: 在所述软件运行时,读取所述内存映射区间中的数据,将读取到的数据确定为所述采样数据。
17.如权利要求14?16任一项所述的装置,其特征在于,所述验证参数还包括所述指定的校验算法,所述指定的校验算法为所述服务器在N种预设的校验算法中随机确定的一种,所述N为大于I的整数。
18.如权利要求13所述的装置,其特征在于,所述验证参数包括可执行代码, 所述获取单元具体用于: 执行所述可执行代码,输出所述第一校验值。
19.如权利要求13所述的装置,其特征在于,所述装置还包括: 请求发送单元,用于向所述服务器发送验证请求,以使所述服务器发送所述验证控制指令。
20.一种软件的防篡改验证装置,其特征在于,包括: 动态确定单元,用于动态确定所述软件的验证参数; 指令发送单元,用于向客户端发送验证控制指令,所述验证控制指令携带了所述验证参数,以使所述客户端通过执行所述验证参数对应的验证逻辑,获取第一校验值; 判断单元,用于接收所述客户端返回的所述第一校验值,比较所述第一校验值与第二校验值,所述第二校验值为预存储在所述服务器的所述验证参数对应的正确校验值; 验证结果确定单元,用于当所述第一校验值与所述第二校验值相同时,确定所述软件未被篡改;当所述第一校验值与所述第二校验值不同时,确定所述软件被篡改。
21.如权利要求20所述的装置,其特征在于,所述验证参数包括采样数据获取位置,所述采样数据获取位置包括所述软件的安装目录下的文件路径或者内存映射区间。
22.如权利要求21所述的装置,其特征在于,所述验证参数还包括所述指定的校验算法,所述指定的校验算法被所述客户端用于对在所述采样数据获取位置获取到的采样数据计算所述第一校验值, 所述装置还包括: 算法确定单元,用于随机将N种预设的校验算法中的一种确定为所述指定的校验算法,所述N为大于等于I的整数。
23.如权利要求21所述的装置,其特征在于,所述验证参数包括可执行代码,所述可执行代码被所述客户端用于在执行后输出所述第一校验值。
24.如权利要求20?23任一项所述的装置,其特征在于,所述装置还包括: 请求接收单元,用于接收所述客户端发送的验证请求。
【文档编号】G06F21/12GK104134021SQ201310247480
【公开日】2014年11月5日 申请日期:2013年6月20日 优先权日:2013年6月20日
【发明者】陈树华, 肖天明 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1