一种虚拟设备的识别方法、装置及其设备转让专利

申请号 : CN201910897344.X

文献号 : CN110673901B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵兵锋李涛

申请人 : 郑州阿帕斯科技有限公司

摘要 :

本申请公开了一种虚拟设备的识别方法、装置及其设备,用于解决现有技术中虚拟设备的使用会造成活动厂商的经济损失以及APP的使用数据不够真实的问题。所述方法包括:在待识别设备上启动第一线程和第二线程;通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,以及通过所述第二线程读取所述预设变量的值,直到读取的值为所述预设数值;基于所述第二线程读取的值和读取次数,获取第一数值序列和第二数值序列;其中,所述第一数值序列包含所述第二线程读取的值;基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。

权利要求 :

1.一种虚拟设备的识别方法,其特征在于,包括:

在待识别设备上启动第一线程和第二线程;

通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,以及通过所述第二线程读取所述预设变量的值,直到读取的值为所述预设数值;

基于所述第二线程读取的值和读取次数,获取第一数值序列和第二数值序列;其中,所述第一数值序列包含所述第二线程读取的值;所述第二数值序列中的元素数量为所述读取次数,所述第二数值序列中的元素最大值为所述预设数值,且所述第二数值序列中任意相邻两个元素之间的差值相同,第二数值序列用于表征预设变量的实际变化情况的预期数值序列;

基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。

2.如权利要求1所述的方法,其特征在于,基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备,包括:基于所述第一数值序列和所述第二数值序列之间的弗雷歇距离和预设距离阈值,确定所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况;

基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。

3.如权利要求2所述的方法,其特征在于,基于所述第一数值序列和所述第二数值序列之间的弗雷歇距离和预设距离阈值,确定所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,包括:若所述第一数值序列和所述第二数值序列之间的弗雷歇距离大于所述预设距离阈值,则确定所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较大;

若所述第一数值序列和所述第二数值序列之间的弗雷歇距离小于或等于所述预设距离阈值,则确定所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较小。

4.如权利要求3所述的方法,其特征在于,基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备,包括:若所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较大,则确定所述待识别设备为虚拟设备。

5.如权利要求1所述的方法,其特征在于,通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,包括:通过所述第一线程在预设赋值周期内按照数值为1的预设步长对所述预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值;其中,所述预设变量的初始值为零。

6.一种虚拟设备的识别装置,其特征在于,包括:

启动单元,用于在待识别设备上启动第一线程和第二线程;

赋值和读取单元,用于通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,以及通过所述第二线程读取所述预设变量的值,直到读取的值为所述预设数值;

获取单元,用于基于所述第二线程读取的值和读取次数,获取第一数值序列和第二数值序列;其中,所述第一数值序列包含所述第二线程读取的值;所述第二数值序列中的元素数量为所述读取次数,所述第二数值序列中的元素最大值为所述预设数值,且所述第二数值序列中任意相邻两个元素之间的差值相同,第二数值序列用于表征预设变量的实际变化情况的预期数值序列;

确定单元,用于基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。

7.如权利要求6所述的装置,其特征在于,所述确定单元,用于:

基于所述第一数值序列和所述第二数值序列之间的弗雷歇距离和预设距离阈值,确定所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况;

基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。

8.如权利要求7所述的装置,其特征在于,所述确定单元,用于:

若所述第一数值序列和所述第二数值序列之间的弗雷歇距离大于所述预设距离阈值,则确定所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较大;

若所述第一数值序列和所述第二数值序列之间的弗雷歇距离小于或等于所述预设距离阈值,则确定所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较小。

9.如权利要求8所述的装置,其特征在于,所述确定单元,用于:

若所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较大,则确定所述待识别设备为虚拟设备。

10.如权利要求6所述的装置,其特征在于,所述赋值和读取单元,用于:通过所述第一线程在预设赋值周期内按照数值为1的预设步长对所述预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值;其中,所述预设变量的初始值为零。

11.一种电子设备,其特征在于,包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如权利要求1~5中任一所述的虚拟设备的识别方法的步骤。

12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现如权利要求1~5中任一所述的虚拟设备的识别方法的步骤。

说明书 :

一种虚拟设备的识别方法、装置及其设备

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种虚拟设备的识别方法、装置及其设备。

背景技术

[0002] 随着互联网技术的快速发展,APP的数量和种类也越来越多,这就使得同类APP的厂商之间往往会存在一定的竞争。为了提高新上线的APP的竞争力,以吸引更多的用户下载安装并使用,很多APP的厂商在推广新上线APP期间,通常会推出一些收益丰厚的活动,比如注册认证奖励、充值返现、推荐好友安装返利等优惠活动。
[0003] 然而,这类活动在吸引真实用户的同时,也会吸引了一些“羊毛党”用户来薅羊毛。具体地,这类用户通常会使用模拟器(即虚拟设备)来模拟真实用户去下载、安装或注册在正在做活动的APP,以获取更多的奖励。显然,这一方面会给活动厂商造成一定的假象,即误认为有很多真实用户下载、安装或注册了在正在做活动的APP;另一方面,也给活动厂商带来一定的经济损失。
[0004] 因此,亟需一种虚拟设备的识别方法以应对上述问题,进而减小活动厂商的经济损失,并提高APP的用户使用数据的真实性。

发明内容

[0005] 本申请实施例提供了一种虚拟设备的识别方法、装置及其设备,以解决现有技术中虚拟设备的使用会造成活动厂商的经济损失以及APP的使用数据不够真实的问题。
[0006] 为解决上述技术问题,本申请实施例是这样实现的:
[0007] 第一方面,提出了一种虚拟设备的识别方法,包括:
[0008] 在待识别设备上启动第一线程和第二线程;
[0009] 通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,以及通过所述第二线程读取所述预设变量的值,直到读取的值为所述预设数值;
[0010] 基于所述第二线程读取的值和读取次数,获取第一数值序列和第二数值序列;其中,所述第一数值序列包含所述第二线程读取的值;所述第二数值序列中的元素数量为所述读取次数,所述第二数值序列中的元素最大值为所述预设数值,且所述第二数值序列中任意相邻两个元素之间的差值相同;
[0011] 基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。
[0012] 第二方面,提出了一种虚拟设备的识别装置,包括:
[0013] 启动单元,用于在待识别设备上启动第一线程和第二线程;
[0014] 赋值和读取单元,用于通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,以及通过所述第二线程读取所述预设变量的值,直到读取的值为所述预设数值;
[0015] 获取单元,用于基于所述第二线程读取的值和读取次数,获取第一数值序列和第二数值序列;其中,所述第一数值序列包含所述第二线程读取的值;所述第二数值序列中的元素数量为所述读取次数,所述第二数值序列中的元素最大值为所述预设数值,且所述第二数值序列中任意相邻两个元素之间的差值相同;
[0016] 确定单元,用于基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。
[0017] 第三方面,提出了一种电子设备,包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如上述第一方面所述的虚拟设备的识别方法的步骤。
[0018] 第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现如上述第一方面所述的虚拟设备的识别方法的步骤。
[0019] 本申请实施例采用上述技术方案至少可以达到下述技术效果:
[0020] 本说明书实施例中提供的虚拟设备的识别方法,能够在待识别设备上启动第一线程和第二线程;通过第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到该预设变量被赋值为预设数值,以及通过第二线程在第一线程对预设变量赋值期间读取该预设变量的值,直到读取的值为预设数值为止;并能够基于第二线程读取的值和读取次数,获取读取的第一数值序列和预期的第二数值序列,再通过比较第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,能够有效确定待识别设备是否虚拟设备,从而减小APP厂商在APP推广营销期间的经济损失,并提高推广营销期间中APP用户的使用数据的真实性。

附图说明

[0021] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0022] 图1为本说明书一个实施例提供的一种虚拟设备的识别方法的实施流程示意图;
[0023] 图2为本说明书一个实施例提供的虚拟设备的识别方法中弗雷歇距离的原理示意图;
[0024] 图3为本说明书一个实施例提供的虚拟设备的识别方法应用在实际场景中的流程示意图;
[0025] 图4为本说明书一个实施例提供的几种第一数值序列的示意图;
[0026] 图5为本说明书一个实施例提供的一种虚拟设备的识别装置的结构示意图;
[0027] 图6为本说明书一个实施例提供的一种电子设备的结构示意图。

具体实施方式

[0028] 为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0029] 以下结合附图,详细说明本申请各实施例提供的技术方案。
[0030] 为解决现有技术中虚拟设备的使用会造成活动厂商的经济损失以及APP的使用数据不够真实的问题,本说明书实施例提供一种虚拟设备的识别方法,能够首先在待识别设备上启动第一线程和第二线程;然后,通过第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到该预设变量被赋值为预设数值,以及通过第二线程在第一线程对预设变量赋值期间读取该预设变量的值,直到读取的值为预设数值为止;再,基于第二线程读取的值和读取次数,获取读取的第一数值序列和预期的第二数值序列;最后,通过比较第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况。
[0031] 本说明书实施例提供的方法基于模拟器等虚拟设备上的任务切换的灵活性和频繁程度都远远不如真实设备的特点,通过在待识别设备上启动两个进程,一个进程用于在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,另一个进程用于在该预设变量赋值期间不断地读取该预设变量的值,从而判断出该待识别设备上的任务切换情况。
[0032] 本说明书实施例判断待识别设备是否为虚拟设备(比如QEMU模拟器)所参考的特征是待识别设备上的任务切换情况这一动态特征,由于动态特征难以被伪造,因此,这一方面能够有效确定待识别设备是否虚拟设备,从而减小APP厂商在APP推广营销期间的经济损失,另一方面也有效提高APP推广营销期间中APP用户的使用数据的真实性。
[0033] 具体地,本说明书一个或多个实施例提供的一种虚拟设备的识别方法的实现流程示意图如图1所示,包括:
[0034] 步骤110,在待识别设备上启动第一线程和第二线程;
[0035] 其中,第一线程用于为预设变量进行叠加赋值操作,第二线程用于读取该预设变量被叠加赋值期间的不断变化的值,那么为便于第二线程能够读取到第一线程中预设变量不断变化的值,该第一线程和第二线程则可以在待识别设备上被同时启动。应理解,为避免调用线程可能会造成阻塞,同时避免额外的线程负担,从而提高软件的可响应性,本说明书实施例中的第一线程和第二线程具体可以是第一异步线程和第二异步线程。
[0036] 步骤120,通过第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到预设变量被赋值为预设数值,以及通过第二线程读取预设变量的值,直到读取的值为预设数值;
[0037] 其中,预设赋值周期具体可以基于预设数值、预设步长、预设变量的初始值以及每相邻两次叠加赋值操作的执行时间间隔来确定。假设预设数值为100、预设步长为1、预设变量的初始值为0,每相邻两次叠加赋值操作的执行时间间隔为0.1ms,那么该预设赋值周期的长度应大于或等于(100‑0)×0.1ms/1=10ms。
[0038] 可选地,为便于计算下文所述的第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,上述预设变量的初始值可以为0,预设步长具体可以是1,即可以通过第一线程在预设赋值周期内对预设变量进行循环加1的操作,直到该预设变量被赋值为预设数值。具体地,通过第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到预设变量被赋值为预设数值,包括:
[0039] 通过第一线程在预设赋值周期内按照数值为1的预设步长对预设变量进行叠加赋值操作,直到预设变量被赋值为预设数值;其中,该预设变量的初始值为零。
[0040] 应理解,为便于确定预设变量被叠加赋值期间的值的变化情况,可通过第二线程读取预设变量被叠加赋值期间的值,具体可每隔预设时间间隔读取一次预设变量的值,比如可每隔0.1ms或每隔0.2ms读取一次预设变量的值。
[0041] 步骤130,基于第二线程读取的值和读取次数,获取第一数值序列和第二数值序列;
[0042] 其中,第一数值序列包含第二线程读取的值;第二数值序列中的元素数量为读取次数,第二数值序列中的元素最大值为预设数值,且第二数值序列中任意相邻两个元素之间的差值相同。
[0043] 应理解,为便于确定第二线程实际读取的值与预设变量的实际变化情况之间的差异,进而识别待识别设备是否为虚拟设备,本说明书实施例可基于第二线程读取的预设变量的最终值和读取次数,确定出一个用于表征预设变量的实际变化情况的预期数值序列(也就是理想中的数值序列),即第二数值序列。
[0044] 假设第二线程读取的预设变量的值依次为2、2、6、8、10,读取次数为5次,那么第一数值序列为[2,2,6,8,10],第二数值序列则为[2,4,6,8,10]。
[0045] 步骤140,基于第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,确定待识别设备是否为虚拟设备。
[0046] 可选地,为了准确确定待识别设备是否为虚拟设备,本说明书实施例具体可以依据弗雷歇距离(Fréchet distance)来评价第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况。具体地,基于第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,确定待识别设备是否为虚拟设备,包括:
[0047] 基于第一数值序列和第二数值序列之间的弗雷歇距离和预设距离阈值,确定第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况;
[0048] 基于第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,确定待识别设备是否为虚拟设备。
[0049] 其中,弗雷歇距离是一种用于描述两种空间路径中对应点之间的差异的波动情况的方式。直观的理解,弗雷歇距离可通过人牵着狗,分别沿不同路径行走,各自走完两条路径过程中所需要的最短狗绳长度来表征。应理解,该最短狗绳长度越小,则表明人的行走路径和狗的行走路径之间的偏差越小,即人的行走路径和狗的行走路径之间对应点差异的波动情况越小。那么,对于两条由点组成的曲线而言,两者之间的弗雷歇距离越短,则表明这两条曲线中对应元素之间的数值差值的波动情况越小,而当两者之间的弗雷歇距离为零,则表明这两条曲线完全相同,即这两条曲线中对应元素之间的数值差值不存在波动情况。
[0050] 以图2所示的两条路径为例,假设路径A为人的行走轨迹,路径B为狗的行走轨迹,由图2可知,人和狗由时刻0走到时刻1,在时刻0.25和时刻0.75时,人和狗之间的距离最远,该距离即为最短狗绳长度,也即弗雷歇距离。
[0051] 可选地,为了准确确定第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,本说明书实施例可预先根据历史计算经验设置一个预设距离阈值。具体地,基于第一数值序列和第二数值序列之间的弗雷歇距离和预设距离阈值,确定第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,包括:
[0052] 若第一数值序列和第二数值序列之间的弗雷歇距离大于预设距离阈值,则确定第一数值序列与第二数值序列中对应元素之间的数值差值的波动较大;
[0053] 若第一数值序列和第二数值序列之间的弗雷歇距离小于或等于预设距离阈值,则确定第一数值序列与第二数值序列中对应元素之间的数值差值的波动较小。
[0054] 应理解,若第一数值序列和第二数值序列中对应元素之间的数值差值的波动较大,则表明该待识别设备上运行第二进程时不会主动更新程序计数器,进而使得读取的预设变量的数值可能只包含少量的中间变化的数值和最终值,从而使得第一数值序列和第二数值序列中记录的数值之间的差异较大。具体地,基于第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,确定待识别设备是否为虚拟设备,包括:
[0055] 若第一数值序列与第二数值序列中对应元素之间的数值差值的波动较大,则确定待识别设备为虚拟设备。
[0056] 而若第一数值序列与第二数值序列中对应元素之间的数值差值的波动较小,则表明第一进程读取到了预设变量在叠加赋值期间的数值,且读取到的数值与预设变量实际变化的数值很接近,也就可以确定待识别设备为真实设备。
[0057] 下面以图3所示一种实际场景中的实施流程示意图,对本说明书实施例提供的虚拟设备的识别方法进行详细说明,如图3所示,包括:
[0058] 步骤311,启动第一线程;
[0059] 步骤312,通过第一线程对变量G执行循环加1操作;
[0060] 步骤313,判断变量G是否被执行了N次加1操作;
[0061] 若变量G被执行了N次加1操作,则本分支流程结束;而若变量G还未被执行N次加1操作,则继续跳转至步骤312对变量G执行循环加1操作。
[0062] 步骤321,启动第二线程;
[0063] 步骤322,通过第二线程读取变量G的值;
[0064] 步骤323,判断变量G是否等于N;
[0065] 若变量G被执行了N次加1操作,则本分支流程结束;而若变量G还未被执行N次加1操作,则继续跳转至步骤312对变量G执行循环加1操作。
[0066] 步骤324,若变量G等于N,则基于第二线程每次读取的变量G的值和读取次数获取第一数值序列;
[0067] 如图4所示,为本说明书实施例提供的几种第一数值序列中的数值的变化曲线的示意图。图4(a)为理想中的第一数值序列,该第一数值序列中的数值随着时间均匀发生变化;图4(b)为在真实设备上通过第二进程读取到的第一数值序列,该第一数值序列中的数值的变化情况与图4(a)中的理想变化情况存在一定的偏差;图4(c)为虚拟设备上通过第二进程读取到的第一数值序列,该第一数值序列中只有少量的中间值和最终值。
[0068] 步骤325,基于第二线程读取变量G的值的读取次数和数值N获取预期的第二数值序列;
[0069] 步骤326,获取用于表征第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况的弗雷歇距离;
[0070] 步骤327,判断弗雷歇距离是否大于或等于N/4?
[0071] 其中,N/4即为上文所述的预设距离阈值,具体可以根据实际计算经验来确定。
[0072] 步骤328,若判断弗雷歇距离大于或等于N/4,则判断当前的待识别设备为模拟器等虚拟设备,且本分支流程结束;
[0073] 步骤329,若判断弗雷歇距离小于N/4,则判断当前的待识别设备为真实设备,且本分支流程结束。
[0074] 本说明书实施例中提供的虚拟设备的识别方法,能够在待识别设备上启动第一线程和第二线程;通过第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到该预设变量被赋值为预设数值,以及通过第二线程在第一线程对预设变量赋值期间读取该预设变量的值,直到读取的值为预设数值为止;并能够基于第二线程读取的值和读取次数,获取读取的第一数值序列和预期的第二数值序列,再通过比较第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,能够有效确定待识别设备是否虚拟设备,从而减小APP厂商在APP推广营销期间的经济损失,并提高推广营销期间中APP用户的使用数据的真实性。
[0075] 图5是本说明书提供的虚拟设备的识别装置500的结构示意图。请参考图5,在一种软件实施方式中,虚拟设备的识别装置500可包括启动单元501、赋值和读取单元502、获取单元503和确定单元504,其中:
[0076] 启动单元501,用于在待识别设备上启动第一线程和第二线程;
[0077] 赋值和读取单元502,用于通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,以及通过所述第二线程读取所述预设变量的值,直到读取的值为所述预设数值;
[0078] 获取单元503,用于基于所述第二线程读取的值和读取次数,获取第一数值序列和第二数值序列;其中,所述第一数值序列包含所述第二线程读取的值;所述第二数值序列中的元素数量为所述读取次数,所述第二数值序列中的元素最大值为所述预设数值,且所述第二数值序列中任意相邻两个元素之间的差值相同;
[0079] 确定单元504,用于基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。
[0080] 本发明实施例中提供的虚拟设备的识别装置,能够通过启动单元501在待识别设备上启动第一线程和第二线程;通过赋值和读取单元502第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到该预设变量被赋值为预设数值,以及通过第二线程在第一线程对预设变量赋值期间读取该预设变量的值,直到读取的值为预设数值为止;并能够通过获取单元503基于第二线程读取的值和读取次数,获取读取的第一数值序列和预期的第二数值序列,再通过确定单元504比较第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,能够有效确定待识别设备是否虚拟设备,从而减小APP厂商在APP推广营销期间的经济损失,并提高推广营销期间中APP用户的使用数据的真实性。
[0081] 可选地,在一种实施方式中,所述确定单元504,用于:
[0082] 基于所述第一数值序列和所述第二数值序列之间的弗雷歇距离和预设距离阈值,确定所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况;
[0083] 基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。
[0084] 可选地,在一种实施方式中,所述确定单元504,用于:
[0085] 若所述第一数值序列和所述第二数值序列之间的弗雷歇距离大于所述预设距离阈值,则确定所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较大;
[0086] 若所述第一数值序列和所述第二数值序列之间的弗雷歇距离小于或等于所述预设距离阈值,则确定所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较小。
[0087] 可选地,在一种实施方式中,所述确定单元504,用于:
[0088] 若所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较大,则确定所述待识别设备为虚拟设备。
[0089] 可选地,在一种实施方式中,所述赋值和读取单元502,用于:
[0090] 通过所述第一线程在预设赋值周期内按照数值为1的预设步长对所述预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值;其中,所述预设变量的初始值为零。
[0091] 虚拟设备的识别装置500能够实现图1~图4的虚拟设备的识别方法实施例的方法,具体可参考图1~图4所示实施例的虚拟设备的识别方法,不再赘述。
[0092] 本发明实施例还提供了一种电子设备,图6为本申请实施例提供的电子设备的结构示意图。如图6所示,电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器601和存储器602,存储器602中可以存储有一个或一个以上存储应用程序或数据。其中,存储器602可以是短暂存储或持久存储。存储在存储器602的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对内存数据加载设备中的一系列计算机可执行指令。更进一步地,处理器601可以设置为与存储器602通信,在内存数据加载设备上执行存储器602中的一系列计算机可执行指令。内存数据加载设备还可以包括一个或一个以上电源603,一个或一个以上有线或无线网络接口504,一个或一个以上输入输出接口605,一个或一个以上键盘506等。
[0093] 在一个具体的实施例中,电子设备600包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现以下流程:
[0094] 在待识别设备上启动第一线程和第二线程;
[0095] 通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,以及通过所述第二线程读取所述预设变量的值,直到读取的值为所述预设数值;
[0096] 基于所述第二线程读取的值和读取次数,获取第一数值序列和第二数值序列;其中,所述第一数值序列包含所述第二线程读取的值;所述第二数值序列中的元素数量为所述读取次数,所述第二数值序列中的元素最大值为所述预设数值,且所述第二数值序列中任意相邻两个元素之间的差值相同;
[0097] 基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。
[0098] 可选地,所述计算机可执行指令被所述处理器执行时,
[0099] 基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备,包括:
[0100] 基于所述第一数值序列和所述第二数值序列之间的弗雷歇距离和预设距离阈值,确定所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况;
[0101] 基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。
[0102] 基于所述第一数值序列和所述第二数值序列之间的弗雷歇距离和预设距离阈值,确定所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,包括:
[0103] 若所述第一数值序列和所述第二数值序列之间的弗雷歇距离大于所述预设距离阈值,则确定所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较大;
[0104] 若所述第一数值序列和所述第二数值序列之间的弗雷歇距离小于或等于所述预设距离阈值,则确定所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较小。
[0105] 基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备,包括:
[0106] 若所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较大,则确定所述待识别设备为虚拟设备。
[0107] 通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,包括:
[0108] 通过所述第一线程在预设赋值周期内按照数值为1的预设步长对所述预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值;其中,所述预设变量的初始值为零。
[0109] 本发明实施例中提供的虚拟设备的识别方法,能够在待识别设备上启动第一线程和第二线程;通过第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到该预设变量被赋值为预设数值,以及通过第二线程在第一线程对预设变量赋值期间读取该预设变量的值,直到读取的值为预设数值为止;并能够基于第二线程读取的值和读取次数,获取读取的第一数值序列和预期的第二数值序列,再通过比较第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,能够有效确定待识别设备是否虚拟设备,从而减小APP厂商在APP推广营销期间的经济损失,并提高推广营销期间中APP用户的使用数据的真实性。
[0110] 进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现以下流程:
[0111] 在待识别设备上启动第一线程和第二线程;
[0112] 通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,以及通过所述第二线程读取所述预设变量的值,直到读取的值为所述预设数值;
[0113] 基于所述第二线程读取的值和读取次数,获取第一数值序列和第二数值序列;其中,所述第一数值序列包含所述第二线程读取的值;所述第二数值序列中的元素数量为所述读取次数,所述第二数值序列中的元素最大值为所述预设数值,且所述第二数值序列中任意相邻两个元素之间的差值相同;
[0114] 基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。
[0115] 可选地,所述计算机可执行指令被所述处理器执行时,
[0116] 基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备,包括:
[0117] 基于所述第一数值序列和所述第二数值序列之间的弗雷歇距离和预设距离阈值,确定所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况;
[0118] 基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备。
[0119] 基于所述第一数值序列和所述第二数值序列之间的弗雷歇距离和预设距离阈值,确定所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,包括:
[0120] 若所述第一数值序列和所述第二数值序列之间的弗雷歇距离大于所述预设距离阈值,则确定所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较大;
[0121] 若所述第一数值序列和所述第二数值序列之间的弗雷歇距离小于或等于所述预设距离阈值,则确定所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较小。
[0122] 基于所述第一数值序列和所述第二数值序列中对应元素之间的数值差值的波动情况,确定所述待识别设备是否为虚拟设备,包括:
[0123] 若所述第一数值序列与所述第二数值序列中对应元素之间的数值差值的波动较大,则确定所述待识别设备为虚拟设备。
[0124] 通过所述第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值,包括:
[0125] 通过所述第一线程在预设赋值周期内按照数值为1的预设步长对所述预设变量进行叠加赋值操作,直到所述预设变量被赋值为预设数值;其中,所述预设变量的初始值为零。
[0126] 本发明实施例中提供的虚拟设备的识别方法,能够在待识别设备上启动第一线程和第二线程;通过第一线程在预设赋值周期内按照预设步长对预设变量进行叠加赋值操作,直到该预设变量被赋值为预设数值,以及通过第二线程在第一线程对预设变量赋值期间读取该预设变量的值,直到读取的值为预设数值为止;并能够基于第二线程读取的值和读取次数,获取读取的第一数值序列和预期的第二数值序列,再通过比较第一数值序列和第二数值序列中对应元素之间的数值差值的波动情况,能够有效确定待识别设备是否虚拟设备,从而减小APP厂商在APP推广营销期间的经济损失,并提高推广营销期间中APP用户的使用数据的真实性。
[0127] 其中,所述的计算机可读存储介质包括只读存储器(Read‑Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
[0128] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0129] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。