一种模拟器的识别方法和系统
技术领域
本发明涉及移动互联技术领域,特别是涉及一种模拟器的识别方法和系统。
背景技术
对于移动设备的移动app来说,如果想要其运行在PC上,需要利用模拟器为其提供运行环境。但是由于模拟器的存在,作弊者会利用模拟器对移动app进行作弊和修改,从而给运营商造成巨大的损失。例如:作弊者可以通过模拟器进行刷安装量,骗取推广量,造成公司损失;又如模拟器上支持许多作弊黑客工具,作弊者可以修改移动app的数据,造成移动app运行失败或者数据统计不正确;又如利用模拟器修改硬件参数信息,从而实现抢单刷票,往往会造成移动app分发优惠券或奖券时被作弊者轻易刷走,使得运营商蒙受损失;又如模拟器提供多开功能,作弊者利用多开的账号进行账号之间的互刷。因此许多运营商对于模拟器的检测有着迫切需求,无论是从业务绩效上,还是用产品质量保证上,都需要正确识别模拟器,避免因此模拟器的存在遭受损失。
发明内容
有鉴于此,本发明提供了一种模拟器的识别方法和系统,以正确识别移动app的运行环境是否存在模拟器,避免因模拟器给运营商造成损失。
为了解决上述问题,本发明公开了一种模拟器的识别方法,应用于移动app,所述识别方法具体包括步骤:
获取所述移动app的运行环境的CPU架构信息;
根据所述CPU架构信息判断所述CPU架构是否为预先规定的预设架构;
当所述CPU架构为所述预设架构时,搜索所述运行环境中是否存在预设特征码;
如果所述运行运行中存在所述预设特征码,则判定所述运行环境中存在模拟器,反之,则判定不存在所述模拟器。
可选的,所述预设架构为x86架构。
可选的,所述搜索所述运行环境中是否存在预设特征码,包括:
搜索所述移动app的运行内存中是否存在所述预设特征码。
可选的,所述预设特征码为二进制翻译特征码。
可选的,还包括步骤:
将识别结果反馈至所述移动app的后台服务器。
相应的,为了保证上述方法的实施,本发明还提供了一种模拟器的识别系统,应用于移动app,所述识别系统包括:
架构信息获取模块,用于获取所述移动app的运行环境的CPU架构信息;
架构判断模块,用于根据所述CPU架构信息判断所述CPU架构是否为预先规定的预设架构;
特征码搜索模块,用于当所述CPU架构为所述预设架构时,搜索所述运行环境中是否存在预设特征码;
模拟器判定模块,用于如果所述运行运行中存在所述预设特征码,则判定所述运行环境中存在模拟器,反之,则判定不存在所述模拟器。
可选的,所述预设架构为x86架构。
可选的,所述特征码搜索模块包括:
内存搜索单元,用于搜索所述移动app的运行内存中是否存在所述预设特征码。
可选的,所述预设特征码为二进制翻译特征码。
可选的,还包括:
识别结果上传模块,用于将识别结果反馈至所述移动app的后台服务器。
从上述技术方案可以看出,本发明提供了一种模拟器的识别方法和系统,该方法和系统应用于移动app,具体为获取该移动app的运行环境的CPU架构信息;然后根据CPU架构信息判断该运行环境的CPU架构是否为预先规定的预设架构;当CPU架构为所述预设架构时,进一步搜索该运行环境中是否存在预设特征码;如果运行运行中存在预设特征码,则判定运行环境中存在模拟器,反之,则判定不存在模拟器。从而运营商能够根据识别结果采取相应的措施,避免因模拟器的存在造成损失。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种模拟器的识别方法实施例的步骤流程图;
图2为本发明提供的另一种模拟器的识别方法实施例的步骤流程图;
图3为本发明提供的一种模拟器的识别系统实施例的结构框图;
图4为本发明提供的另一种模拟器的识别系统实施例的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明提供的一种模拟器的识别方法实施例的步骤流程图。
参照图1所示,本实施例提供的识别方法应用于移动设备的移动app,用于判断该移动app是否通过模拟器运行,具体来说为识别该移动app的运行环境是否存在上述模拟器,该识别方法具体包括如下步骤:
S101:获取移动app的运行环境的CPU架构信息。
移动app一般运行于移动设备上,觉得部分移动设备的CPU架构为ARM架构,即应用精简指令集的一种CPU架构,而对于PC来说,其CPU架构则绝大部分应该是x86架构,这里获取的CPU架构信息则反映该运行环境的CPU架构。
S102:根据CPU架构信息判断CPU架构是否为预设架构。
即在获得上述CPU架构信息后,根据该信息确定该运行环境的CPU架构。由于模拟器一般运行于采用x86架构的PC,因此这里的预设架构优选x86架构,通过判断运行环境的CPU架构是否为x86架构确定该运行环境是PC还是移动设备,如果是x86架构,则运行环境为PC,反之则应该为移动设备,不会有模拟器存在,这时就不需要进行进一步的判断。
S103:搜索运行环境中是否存在预设特征码。
如果根据上述判断确定该运行环境的CPU架构为x86架构,则进一步搜索运行环境中是否存在预设特征码,该预设特征码是模拟器运行于PC的一种主要特征。
由于适用于移动设备的移动app不能直接运行于PC环境,因此需要对其进行翻译,即二进制翻译。二进制翻译(Binary Translation)是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行,它使得不同处理器之间的二进制程序可以很容易地相互移植。具体到本申请中是将移动设备上的app翻译成能够运行于PC的应用程序,在翻译过程中不可避免地产生相应的特征码,这里将其称为二进制翻译特征码,用于表征是否进行了二进制翻译,从而确定作弊者是否将移动app做了移植。
具体的搜索过程为,利用相应的搜索函数在移动app的运行内存中逐步查找,以此搜索该运行内存中是否存在上述二进制翻译特征码。
S104:根据是否搜索到该二进制翻译特征码确定是否存在模拟器。
通过上述的搜索,如果能够搜索到相应的二进制翻译特征码,则判定该运行环境中存在模拟器;反之,如果没有搜索到该二进制特征码,则判定该运行环境不存在该模拟器。
从上述技术方案可以看出,本实施例提供了一种模拟器的识别方法,该方法应用于移动app,具体为获取该移动app的运行环境的CPU架构信息;然后根据CPU架构信息判断该运行环境的CPU架构是否为预先规定的预设架构;当CPU架构为所述预设架构时,进一步搜索该运行环境中是否存在预设特征码;如果运行运行中存在预设特征码,则判定运行环境中存在模拟器,反之,则判定不存在模拟器。从而运营商能够根据识别结果采取相应的措施,避免因模拟器的存在造成损失。
实施例二
图2为本发明提供的另一种模拟器的识别方法实施例的步骤流程图。
参照图2所示,本实施例提供的识别方法应用于移动设备的移动app,用于判断该移动app是否通过模拟器运行,具体来说为识别该移动app的运行环境是否存在上述模拟器,该识别方法具体包括如下步骤:
S201:获取移动app的运行环境的CPU架构信息。
移动app一般运行于移动设备上,觉得部分移动设备的CPU架构为ARM架构,即应用精简指令集的一种CPU架构,而对于PC来说,其CPU架构则绝大部分应该是x86架构,这里获取的CPU架构信息则反映该运行环境的CPU架构。
S202:根据CPU架构信息判断CPU架构是否为预设架构。
即在获得上述CPU架构信息后,根据该信息确定该运行环境的CPU架构。由于模拟器一般运行于采用x86架构的PC,因此这里的预设架构优选x86架构,通过判断运行环境的CPU架构是否为x86架构确定该运行环境是PC还是移动设备,如果是x86架构,则运行环境为PC,反之则应该为移动设备,不会有模拟器存在,这时就不需要进行进一步的判断。
S203:搜索运行环境中是否存在预设特征码。
如果根据上述判断确定该运行环境的CPU架构为x86架构,则进一步搜索运行环境中是否存在预设特征码,该预设特征码是模拟器运行于PC的一种主要特征。
由于适用于移动设备的移动app不能直接运行于PC环境,因此需要对其进行翻译,即二进制翻译。二进制翻译(Binary Translation)是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行,它使得不同处理器之间的二进制程序可以很容易地相互移植。具体到本申请中是将移动设备上的app翻译成能够运行于PC的应用程序,在翻译过程中不可避免地产生相应的特征码,这里将其称为二进制翻译特征码,用于表征是否进行了二进制翻译,从而确定作弊者是否将移动app做了移植。
具体的搜索过程为,利用相应的搜索函数在移动app的运行内存中逐步查找,以此搜索该运行内存中是否存在上述二进制翻译特征码。
S204:根据是否搜索到该二进制翻译特征码确定是否存在模拟器。
通过上述的搜索,如果能够搜索到相应的二进制翻译特征码,则判定该运行环境中存在模拟器;反之,如果没有搜索到该二进制特征码,则判定该运行环境不存在该模拟器。
S205:将识别结果反馈至后台服务器。
该后台服务器即运营商支持上述移动app运行的服务器,例如对于购物app来说,其后台服务器即购物网站的运营商提供购物服务支持的服务器。通过该反馈,可以使运营商能够直接获取该识别结果,从而根据该结果对相应的用户采取处置措施,以避免遭受到损失。
从上述技术方案可以看出,本实施例提供了一种模拟器的识别方法,该方法应用于移动app,具体为获取该移动app的运行环境的CPU架构信息;然后根据CPU架构信息判断该运行环境的CPU架构是否为预先规定的预设架构;当CPU架构为所述预设架构时,进一步搜索该运行环境中是否存在预设特征码;如果运行运行中存在预设特征码,则判定运行环境中存在模拟器,反之,则判定不存在模拟器,最终将该识别结果反馈至运营商的服务器,从而运营商能够根据识别结果采取相应的措施,避免因模拟器的存在造成损失。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例三
图3为本发明提供的一种模拟器的识别系统实施例的结构框图。
参照图3所示,本实施例提供的识别系统应用于移动设备的移动app,用于判断该移动app是否通过模拟器运行,具体来说为识别该移动app的运行环境是否存在上述模拟器,该识别系统包括架构信息获取模块10、架构判断模块20、特征码搜索模块30和模拟器判定模块40。
架构信息获取模块10用于获取移动app的运行环境的CPU架构信息。
移动app一般运行于移动设备上,觉得部分移动设备的CPU架构为ARM架构,即应用精简指令集的一种CPU架构,而对于PC来说,其CPU架构则绝大部分应该是x86架构,这里获取的CPU架构信息则反映该运行环境的CPU架构。
架构判断模块20用于根据架构信息获取模块10获取的CPU架构信息判断CPU架构是否为预设架构。
即在获得上述CPU架构信息后,根据该信息确定该运行环境的CPU架构。由于模拟器一般运行于采用x86架构的PC,因此这里的预设架构优选x86架构,通过判断运行环境的CPU架构是否为x86架构确定该运行环境是PC还是移动设备,如果是x86架构,则运行环境为PC,反之则应该为移动设备,不会有模拟器存在,这时就不需要进行进一步的判断。
特征码搜索模块30用于搜索运行环境中是否存在预设特征码。
具体为当架构判断模块20判定该运行环境的CPU架构为x86架构时,进一步搜索运行环境中是否存在预设特征码,该预设特征码是模拟器运行于PC的一种主要特征。
由于适用于移动设备的移动app不能直接运行于PC环境,因此需要对其进行翻译,即二进制翻译。二进制翻译(Binary Translation)是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行,它使得不同处理器之间的二进制程序可以很容易地相互移植。具体到本申请中是将移动设备上的app翻译成能够运行于PC的应用程序,在翻译过程中不可避免地产生相应的特征码,这里将其称为二进制翻译特征码,用于表征是否进行了二进制翻译,从而确定作弊者是否将移动app做了移植。
特征码搜索模块30包括内存搜索单元31,该内存搜索单元31用于利用相应的搜索函数在移动app的运行内存中逐步查找,以此搜索该运行内存中是否存在上述二进制翻译特征码。
模拟器判定模块40根据是否搜索到该二进制翻译特征码确定是否存在模拟器。
如果能够搜索到相应的二进制翻译特征码,则判定该运行环境中存在模拟器;反之,如果没有搜索到该二进制特征码,则判定该运行环境不存在该模拟器。
从上述技术方案可以看出,本实施例提供了一种模拟器的识别系统,该系统应用于移动app,具体为获取该移动app的运行环境的CPU架构信息;然后根据CPU架构信息判断该运行环境的CPU架构是否为预先规定的预设架构;当CPU架构为所述预设架构时,进一步搜索该运行环境中是否存在预设特征码;如果运行运行中存在预设特征码,则判定运行环境中存在模拟器,反之,则判定不存在模拟器。从而运营商能够根据识别结果采取相应的措施,避免因模拟器的存在造成损失。
实施例四
图4为本发明提供的另一种模拟器的识别系统实施例的结构框图。
参照图4所示,本实施例提供的识别系统是在上一实施例的基础上增设了识别结果上传模块50。
识别结果上传模块50用于将模拟器判定模块40确定的识别结果反馈至后台服务器。
该后台服务器即运营商支持上述移动app运行的服务器,例如对于购物app来说,其后台服务器即购物网站的运营商提供购物服务支持的服务器。通过该反馈,可以使运营商能够直接获取该识别结果,从而根据该结果对相应的用户采取处置措施,以避免遭受到损失。
从上述技术方案可以看出,本实施例提供了一种模拟器的识别系统,该系统应用于移动app,具体为获取该移动app的运行环境的CPU架构信息;然后根据CPU架构信息判断该运行环境的CPU架构是否为预先规定的预设架构;当CPU架构为所述预设架构时,进一步搜索该运行环境中是否存在预设特征码;如果运行运行中存在预设特征码,则判定运行环境中存在模拟器,反之,则判定不存在模拟器,最终将该识别结果反馈至运营商的服务器,从而运营商能够根据识别结果采取相应的措施,避免因模拟器的存在造成损失。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。