基于app安装列表识别虚拟机的系统的制作方法

文档序号:26360357发布日期:2021-08-20 20:36阅读:175来源:国知局
基于app安装列表识别虚拟机的系统的制作方法

本发明涉及计算机技术领域,尤其涉及一种基于app安装列表识别虚拟机的系统。



背景技术:

虚拟机是指一种特殊的软件,可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于这个计算机软件所创建的环境来操作虚拟机的。虚拟机并非真实的终端设备,但能够像真实的终端设备一样,安装并运行app(application,应用程序)。随着终端技术的快速发展,海量的app被开发,在终端设备或虚拟机上安装使用。

在现有的很多数据分析应用场景中,需要基于获取的设备数据来判断该设备是否为虚拟机,在一些情况下可以获取设备的多种设备数据来判断是设备否为虚拟机。但是,在一些场景中,仅能获取设备的app安装列表,而由于虚拟机能够像终端设备一样安装运行app,且由于app数量大,种类多,因此现有技术无法直接基于设备的app安装列表来识别设备是否为虚拟机。



技术实现要素:

本发明目的在于,提供一种基于app安装列表识别虚拟机的系统,能够基于设备的app安装列表判断设备是否为虚拟机。

根据本发明一方面,提供了一种基于app安装列表识别虚拟机的系统,包括第一数据库、第二数据库、预设的真实设备id集合、处理器,存储有计算机程序的存储器,其中,所述第一数据库用于存储设备信息记录,所述设备信息记录的字段包括设备id、至少一个设备参数信息和时间信息;所述第二数据库用于存储设备安装app记录,所述设备安装app记录的字段包括设备id、app安装列表和时间信息;所述处理器执行所述计算机程序实现以下步骤:

步骤s1、从所述第一数据库中获取预设时段内的至少一条设备信息记录,判断设备信息记录对应的设备是否为虚拟机,若是,则将对应的设备id确定为虚拟机id,循环执行,直至确定虚拟机id的数量超过预设的第一阈值,将所确定的所有虚拟机id构建虚拟机id集合;

步骤s2、从所述虚拟机id集合中获取m个虚拟机id作为虚拟样本id,从所述真实设备id集合中获取n个真实设备id作为真实样本id,m和n为同一数量级的数值;

步骤s3、从所述第二数据库中获取预设时段内每一虚拟样本id和每一真实样本id对应的app安装列表;

步骤s4、基于所有虚拟样本id对应的app安装列表和所有真实样本id对应的app安装列表确定虚拟机app集合;

步骤s5、获取待测设备的app安装列表,基于所述虚拟机app集合判断所述待测设备的app安装列表中的虚拟机app的数量是否超过预设第二阈值和/或虚拟机app安装比例超过预设的第一比例阈值,若是,则将所述待测设备的app确定为虚拟机。

本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种基于app安装列表识别虚拟机的系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:

本发明能够先从海量数据中筛选出一批虚拟机样本数据,再基于虚拟机设备样本和真实设备样本的app列表获取虚拟机app集合,从而实现基于设备的app安装列表准确高效地判断设备是否为虚拟机。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

图1为本发明实施例提供的基于app安装列表识别虚拟机的系统示意图。

具体实施方式

为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于app安装列表识别虚拟机的系统的具体实施方式及其功效,详细说明如后。

本发明实施例提供了一种基于app安装列表识别虚拟机的系统,如图1所示,包括第一数据库、第二数据库、处理器,存储有计算机程序的存储器,其中,所述第一数据库用于存储设备信息记录,所述设备信息记录的字段包括设备id、至少一个设备参数信息和时间信息;所述第二数据库用于存储设备安装app记录,所述设备安装app记录的字段包括设备id、app安装列表和时间信息;所述处理器执行所述计算机程序实现以下步骤:

步骤s1、从所述第一数据库中获取预设时段内的至少一条设备信息记录,判断设备信息记录对应的设备是否为虚拟机,若是,则将对应的设备id确定为虚拟机id,循环执行,直至确定虚拟机id的数量超过预设的第一阈值,将所确定的所有虚拟机id构建虚拟机id集合;

其中,第一阈值可根据后续要选择的虚拟样本id的数量设定。

步骤s2、从所述虚拟机id集合中获取m个虚拟机id作为虚拟样本id,从预设的真实设备id集合中获取n个真实设备id作为真实样本id,m和n为同一数量级的数值;

其中,m和n的具体数值根据所能提供计算资源的大小、所需求的目标精确度的需求等具体因素来确定,可以理解的是,m和n的具体数值的大小与精确度正相关,与所需计算资源也正相关。m和n优选为万数量级及以上的数值。

步骤s3、从所述第二数据库中获取预设时段内每一虚拟样本id和每一真实样本id对应的app安装列表;

步骤s4、基于所有虚拟样本id对应的app安装列表和所有真实样本id对应的app安装列表确定虚拟机app集合;

步骤s5、获取待测设备的app安装列表,基于所述虚拟机app集合判断所述待测设备的app安装列表中的虚拟机app的数量是否超过预设第二阈值和/或虚拟机app安装比例超过预设的第一比例阈值,若是,则将所述待测设备的app确定为虚拟机。

根据本发明,所述系统可以物理实现为一个服务器,也可以实现为包括多个服务器的服务器群组;真实设备可以物理实现为智能手机、pad等能够安装app的终端。本领域技术人员知晓,服务器和真实设备终端的型号、规格等参数并不影响本发明的保护范围。

本发明实施例能够先从海量数据中筛选出一批虚拟机样本数据,再基于虚拟机设备样本和真实设备样本的app列表获取虚拟机app集合,从而实现基于设备的app安装列表准确高效地判断设备是否为虚拟机。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

为了提升从海量设备id中筛选出的虚拟机id的准确性,还可在所述设备参数信息字段中具体设置是否安装xposed框架字段和是否安装模拟器字段终端,所述步骤s1中,从所述第一数据库中获取的预设时段内设备信息记录均为安装xposed框架或模拟器终端的设备对应的设备信息记录,即采用步骤s1获取的设备信息记录均为粗筛后的可能为虚拟机的设备信息记录,这样可以提高后续数据处理的效率和准确性。

作为一种实施例,所述设备参数信息字段具体包括cpu型号信息字段、预设传感器信息字段、系统属性信息字段、设备标识信息字段,所述步骤s1中,所述判断设备信息记录对应的设备是否为虚拟机包括:

步骤s11、判断设备的cpu型号信息是否属于预设虚拟机cpu型号,若是,则初步判断该设备为虚拟机,否则,判断该设备为虚拟机设备,并对应生成第一判断数据,所述预设虚拟机cpu型号包括intel和amd;

其中,设备的cpu型号具体可采用现有技术基于设备上预先安装的sdk(softwaredevelopmentkit,软件开发工具包)获取后存储至所述第一数据库中,在此不再展开描述。

步骤s12、判断设备的预设传感器信息是否符合预设的虚拟机传感器数据分布规则,若是,则初步判断该设备为虚拟机,否则,判断该设备为虚拟机设备,并对应生成第二判断数据;

步骤s13、判断设备的系统属性是否异常,若异常,且存在预设的模拟器属性文件,则初步判断该设备为虚拟机,否则,判断该设备为虚拟机设备,并对应生成第三判断数据;

其中,作为一种实施例,所述系统属性包括android.os.systemproperties,所述预设的模拟器属性文件包括/dev/qemu_pipe文件和/dev/socket/qemud文件。

步骤s14、判断设备sdk端采用不同的设备标识获取方法所获取的值是否一致,若不一致或者所获取的设备标识为预设设备标识黑名单中的标识,则初步判断该设备为虚拟机,否则,判断该设备为虚拟机设备,并对应生成第四判断数据;

步骤s15、基于所述第一判断数据、第二判断数据、第三判断数据和第四判断数据以及对应的预设权重生成第五判断数据,若所述第五判断数据超过预设的第三阈值,则判断设备信息记录对应的设备为虚拟机。

可以理解的是,具体可根据应用场景来选择或者数据获取的便利程度等因素来具体设置所述第一判断数据、第二判断数据、第三判断数据和第四判断数据对应的权重值,通过从多个维度来初步判断设备是否为虚拟机,再结合预设的权重,确定设备是否为虚拟机设备,提高了获取虚拟机样本数据的准确性。

作为一种实施例,根据选择的传感器数据的不同,所述步骤s12下述步骤中的一个或多个,当为多个时,多个结果全部初步判断为虚拟机时,输出设备初步判断结果为虚拟机:

步骤s121、判断设备的cpu温度数据中,是否存在/sys/class/thermal/thermal_zone文件,若不存在,则初步判断该设备为虚拟机;

步骤s122、判断设备的gps数据中,是否存在gps_provider文件,若不存在,则初步判断该设备为虚拟机;

步骤s123、判断设备的蓝牙数据中是否存在/system/lib/libbluerooth_jni.so文件,若不存在,则初步判断该设备为虚拟机;

步骤s124、判断设备的电池温度是否为固定不变,若是,则初步判断该设备为虚拟机;

作为示例,虚拟机的电池温度通常为0且固定不变。

步骤s125、判断设备的电量是否固定不变,若是,则初步判断该设备为虚拟机;

作为示例,虚拟机的电池温度通常为50%,且固定不变。

步骤s126、判断设备的gps和/或陀螺仪的移动速度是否超过预设的速度阈值,若是,则初步判断该设备为虚拟。

作为示例,虚拟机的传感器会出现传感器波动,例如gps、陀螺仪会出现传感器器飘飞,即移动速度是否超过预设的速度阈值,速度阈值优选的设置在飞机速度的2倍以上。

需要说明的是,设备的春干起数据具体也可采用现有技术基于设备上预先安装的sdk获取后存储至所述第一数据库中,在此不再展开描述。

作为一种实施例,所述步骤s4具体可包括:

步骤s41、基于所有虚拟样本id对应的app安装列表获取每一app的在虚拟样本中的安装量cnt_1和在虚拟样本中的安装占比rate1,rate1=cnt_1/m;

步骤s42、基于所有真实样本id对应的app安装列表获取每一app在真实样本中的安装量cnt_2和在真实样本中的安装占比rate2,rate2=cnt_2/n;

步骤s43、基于rate1和rate2确定第一参数tgi和第二参数sens_iv:

tgi=rate1/rate2,

sens_iv=(rate_1-rate_2)*log(rate_1/rate_2);

步骤s44、判断app的对应的cnt_1是否大于预设的第四阈值,tgi大于预设的第五阈值,且sens_iv是否大于预设的第六阈值,若符合,则将该app确定为虚拟机app。

可以理解的是,第四阈值、第五阈值、第六阈值的具体数值可根据所选样本数量,所选样本app的分布,目标精确度等多种参数来设定。作为一种示例,所述第四阈值可设置为3,所述第五阈值可设置为2,所述第六阈值可设置为0.1。

真实设备的预装app通常安装在虚拟机上的概率很低,预装app指的是真实设备终端出厂时已安装在终端上且无法卸载的app,因此,在执在步骤s41之前可将这部分预装app过滤掉,减少后续的不必要的计算量,提高数据处理的效率,具体地,作为一种示例,在步骤s41之前还包括,去除所述虚拟样本id和真实样本id的app安装列表中预设预装app,所述预装app为真实设备的预装app。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1