1.一种基于用户信息的安卓模拟器识别方法,其步骤包括:
1)服务端收集客户端的用户设备信息,其中所述用户设备信息通过在app中嵌入设备指纹sdk得到;
2)根据用户设备信息,构建m维的特征向量,其中m为属性的数量;
3)将所述特征向量输入至安卓模拟器识别模型,获取识别结果;
其中,通过以下步骤得到所述安卓模拟器识别模型:
a)获取若干样本用户设备信息;
b)根据若干样本用户设备信息,分别构建若干m维的样本特征向量,
c)依据m维的样本特征向量进行机器学习,得到所述安卓模拟器识别模型。
2.如权利要求1所述的方法,其特征在于,收集用户设备信息的方法包括:访问对应类的成员变量、执行系统命令和访问特定文件。
3.如权利要求2所述的方法,其特征在于,对应类包括:android.os.build、settings.global、android.provider.settings.system和android.provider.settings.secure。
4.如权利要求2所述的方法,其特征在于,执行系统命令的方法包括:运行runtime.getruntime().exec()。
5.如权利要求1所述的方法,其特征在于,用户设备信息的格式包括:包含属性名与属性值的json格式数值对。
6.如权利要求1所述的方法,其特征在于,用户设备信息包括:用户设备的设置信息、用户设备的基础硬件信息和用户设备的操作系统信息。
7.如权利要求1所述的方法,其特征在于,客户端在向服务端发送用户设备信息之前,对用户设备进行脱敏处理;进行脱敏处理的方法包括:md5摘要算法。
8.如权利要求1所述的方法,其特征在于,机器学习的方法包括:朴素贝叶斯。
9.如权利要求1所述的方法,其特征在于,将依据识别结果生成的校验值发送至客户端;若客户端接收的校验值表示该客户端不是安卓模拟器,则执行对应的逻辑;若客户端接收的校验值表示该客户端是安卓模拟器,则执行app正常的逻辑代码。
10.一种基于用户信息的安卓模拟器识别系统,包括:
客户端,用以通过在app中嵌入的设备指纹sdk,得到该客户端的用户设备信息;将用户设备信息发送至服务端;
服务端,用以收集客户端的用户设备信息;根据用户设备信息,构建m维的特征向量,其中m为属性的数量;将所述特征向量输入至安卓模拟器识别模型,获取识别结果;
其中,通过以下步骤得到所述安卓模拟器识别模型:
a)获取若干样本用户设备信息;
b)根据若干样本用户设备信息,构建若干m维的样本特征向量,
c)依据m维的样本特征向量进行机器学习,得到所述安卓模拟器识别模型。