CN107908952B - 识别真机和模拟器的方法、装置和终端 - Google Patents

识别真机和模拟器的方法、装置和终端 Download PDF

Info

Publication number
CN107908952B
CN107908952B CN201711007765.8A CN201711007765A CN107908952B CN 107908952 B CN107908952 B CN 107908952B CN 201711007765 A CN201711007765 A CN 201711007765A CN 107908952 B CN107908952 B CN 107908952B
Authority
CN
China
Prior art keywords
simulator
command
terminal
instruction
architecture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711007765.8A
Other languages
English (en)
Other versions
CN107908952A (zh
Inventor
黄银锋
李文富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN201711007765.8A priority Critical patent/CN107908952B/zh
Publication of CN107908952A publication Critical patent/CN107908952A/zh
Application granted granted Critical
Publication of CN107908952B publication Critical patent/CN107908952B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Abstract

本发明提供一种识别真机和模拟器的方法,包括如下步骤:执行位于特定内存地址的指令;向所述特定内存地址写入指令;循环执行位于所述特定内存地址的指令;判断所述写入的指令是否被执行;若是,识别终端为X86架构的模拟器;否则,识别终端为ARM架构的真机。本发明基于模拟器和真机所采用的架构有所差异,通过通过指令的执行结果追踪检测应用行为,识别出模拟器,解决了安卓应用市场如何对采用模拟器进行应用刷量进行防御的问题,确保了应用开发者及消费者的合法利益。本发明还提供了一种识别真机和模拟器的装置和终端。

Description

识别真机和模拟器的方法、装置和终端
技术领域
本发明涉及计算机技术领域,具体而言,本发明涉及一种识别真机和模拟器的方法、装置和终端。
背景技术
安卓模拟器是一个能在Windows平台模拟安卓手机系统的模拟器。安卓模拟器能在电脑上模拟出安卓手机运行环境,让用户在电脑上也能体验安卓游戏和应用。其在电脑上模拟安卓操作系统,能安装、使用和卸载安卓应用软件,且具有简单、方便、成本低等的特征。
应用市场亦称应用商店,俗称APP STORE,是专门为移动设备手机,平板电脑等提供收费或免费的游戏或应用下载服务的电子应用商店。其涉及应用开发者与消费者的切身利益,有的应用开发者为了提高应用排行的排名,采用模拟器对其进行刷量,造成应用在应用市场中呈现的数据与实际使用数据不符,给其他应用开发者造成严重的损害,同时蒙骗了消费者。
因此,如何识别出模拟器,以防止应用市场中的应用被刷量,成了亟需解决的问题。
发明内容
本发明的目的旨在提供一种识别出真机和模拟器的解决方案,以至少解决上述的技术缺陷之一。
第一方面,本发明提供一种识别真机和模拟器的方法,包括如下步骤:
执行位于特定内存地址的指令;
向所述特定内存地址写入指令;
循环执行位于所述特定内存地址的指令;
判断所述写入的指令是否被执行;若是,识别终端为X86架构的模拟器;否则,识别终端为ARM架构的真机。
其中,所述执行位于特定内存地址的指令之前,还包括步骤:
获取内存地址信息,根据内存地址信息向特定内存地址写入指令。
其中,所述执行位于特定内存地址的指令之前,还包括步骤:
安装安卓测试应用;
或,启用安卓应用市场。
进一步地,所述识别终端为X86架构的模拟器之后,还包括步骤:
向服务器反馈终端为X86架构模拟器的信息。
进一步地,所述识别终端为X86架构的模拟器之后,还包括步骤:
确认对安卓应用市场中发出的命令为累计量命令;
向服务器反馈不计算所述累计量命令对应累计值的信息;或,向服务器反馈所述命令为模拟器发出的累计量命令。
更进一步地,所述识别终端为X86架构的模拟器之后,还包括步骤:
限制终端对安卓应用市场发出的命令。
其中,所述限制终端对安卓应用市场发出的命令,包括步骤:
获取安卓应用市场中应用的下载排名,限制对安卓应用市场中预定数量的排在最前面的应用发出命令;
或,确认对安卓应用市场中同一应用发出超过预置数量命令,停止执行对所述应用发出的命令;
或,确认对安卓应用市场中应用发出命令,在发出命令后的预置时间段内,停止执行对所述应用发出的命令,提示预置时间段内停止执行所述应用的命令;
或,确认对安卓应用市场中应用发出的命令为受限命令,停止执行所述受限命令,提示模拟器停止执行所述受限命令。
优选地,所述识别终端为X86架构的模拟器之后,还包括:
获取安卓应用市场中应用的下载排名;
确认对安卓应用市场中预定数量的排在最前面的应用发出的命令为累计量命令;
判断登陆安卓应用市场的用户是否为贵宾用户;
若是贵宾用户,向服务器反馈不计算所述累计量命令对应累计值的信息,或向服务器反馈所述命令为模拟器发出的累计量命令;
若不是贵宾用户,限制对所述应用发出的命令。
第二方面,本发明提供一种识别真机和模拟器的装置,包括以下模块:
第一执行模块,用于执行位于特定内存地址的指令;
第一写入模块,用于向所述特定内存地址写入指令;
第二执行模块,用于循环执行位于所述特定内存地址的指令;
判断模块,用于判断所述写入的指令是否被执行;若是,识别终端为X86架构的模拟器;否则,识别终端为ARM架构的真机。
其中,还包括安装模块,用于在所述执行位于特定内存地址的指令之前,安装安卓测试应用;或还包括启动程序模块,用于在所述执行位于特定内存地址的指令之前,启用安卓应用市场。
进一步地,还包括第二写入模块,用于在所述执行位于特定内存地址的指令之前,获取内存地址信息,根据内存地址信息向特定内存地址写入指令。
进一步地,还包括:
第一反馈模块,用于在所述识别终端为X86架构的模拟器之后,向服务器反馈终端为X86架构模拟器的信息。
或,第二反馈模块,用于所述识别终端为X86架构的模拟器之后,确认对安卓应用市场中发出的命令为累计量命令;向服务器反馈不计算所述累计量命令对应累计值的信息;或,向服务器反馈所述命令为模拟器发出的累计量命令。
或,限制模块,用于在所述识别终端为X86架构的模拟器之后,限制终端对安卓应用市场发出的命令。
所述限制模块包括:
第一限制单元,用于获取安卓应用市场中应用的下载排名,限制对安卓应用市场中预定数量的排在最前面的应用发出命令;
或,第二限制单元,用于确认对安卓应用市场中同一应用发出超过预置数量命令,停止执行对所述应用发出的命令;
或,第三限制单元,用于确认对安卓应用市场中应用发出命令,在发出命令后的预置时间段内,停止执行对所述应用发出的命令,提示预置时间段内停止执行所述应用的命令;
或,第四限制单元,用于确认对安卓应用市场中应用发出的命令为受限命令,停止执行所述受限命令,提示模拟器停止执行所述受限命令。
优选地,还包括第三反馈模块,用于在所述识别终端为X86架构的模拟器之后,获取安卓应用市场中应用的下载排名;确认对安卓应用市场中预定数量的排在最前面的应用发出的命令为累计量命令;判断登陆安卓应用市场的用户是否为贵宾用户;若是贵宾用户,向服务器反馈不计算所述累计量命令对应累计值的信息,或向服务器反馈所述命令为模拟器发出的累计量命令;若不是贵宾用户,限制对所述应用发出的命令。
第三方面,本发明提供一种终端,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据第一方面任一项所述的识别真机和模拟器的方法。
区别于现有技术,本发明具有以下优势:
本发明基于模拟器和真机所采用的架构有所差异,通过指令追踪应用行为的方法,识别出模拟器。其中安卓模拟器采用X86架构Cache缓存,真机采用ARM架构Cache缓存;具体地,通过指令的执行结果追踪检测应用行为,由于识别的过程基于模拟器和真机的结构实现,其提高了对模拟器的识别精度;同时,由于识别的过程为指令的执行,其处理速度较快,且易于实现。进一步地,解决了安卓应用市场如何对采用模拟器进行应用刷量进行防御的问题,确保了应用开发者及消费者的合法利益。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为实施例一识别真机和模拟器的方法流程图;
图2为实施例二识别真机和模拟器的方法流程图;
图3为实施例二中另一个识别真机和模拟器的方法流程图;
图4为实施例二中又一个识别真机和模拟器的方法流程图;
图5为实施例三中识别真机和模拟器的装置框图;
图6为实施例四中识别真机和模拟器的终端框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通讯链路上,执行双向通讯的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通讯设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通讯设备;PCS(Personal Communications Service,个人通讯系统),其可以组合语音、数据处理、传真和/或数据通讯能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通讯终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本技术领域技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通讯方式实现通讯,包括但不限于,基于3GPP、LTE、WIMAX的移动通讯、基于TCP/IP、UDP协议的计算机网络通讯以及基于蓝牙、红外传输标准的近距无线传输方式。
X86架构是X86指令集,它属于CISC指令集。主要应用于PC领域如笔记本、台式机、小型服务器等。ARM架构是ARM指令集,属于RISC指令集。主要应用于移动领域如手机、平板等。Cache是一个高速小容量的临时存储器,可以用高速的静态存储器芯片实现,或者集成到CPU芯片内部,存储CPU最经常访问的指令或者操作数据。
其中,X86架构的一级缓存(L1-Cache)是一整块的,X86中的cache架构在术语上称作冯·诺依曼架构,也称普林斯顿架构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。冯·诺依曼结构的处理器使用同一个存储器,经由同一个总线传输。当冯·诺依曼结构完成一条指令时,其需要三个步骤,取指令、指令译码和执行指令;且由于取指令和存储数据要从用一个存储空间存取,经由同一总线传输,因而在执行多条执行时,它们无法重叠执行,只有一个指令完成后再进行一个指令。
其中,ARM架构的一级缓存平分为两块:指令寄存器(I-Cache)和数据寄存器(D-Cache),ARM的这中cache架构被称作哈佛架构,哈佛架构师一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度。哈佛结构的微处理器通常具有较高的执行效率,其程序指令和数据指令分开组织和存储,执行时可以预先读取下一条指令。
由于市场上的PC机常使用因特尔处理,其属于X86架构;而手机则绝大部分属于ARM架构,且两者的Cache缓存不同。本发明基于X86架构和ARM架构Cache缓存的差异,提供识别真机和模拟器的方法、装置和终端,给安卓应用市场对采用模拟器进行对应用刷量行为提供防御和限制的方案。
实施例一
结合图1,在本实施例中,提供一种识别真机和模拟器的方法,具体包括以下步骤:
S01执行位于特定内存地址的指令;
其中,内存地址为系统RAM中的特定位置,通常以十六进制的数字表示。
进一步地,在所述执行位于特定内存地址的指令之前,还包括步骤:获取内存地址信息,根据内存地址信息向特定内存地址写入指令。
更进一步地,在所述执行位于特定内存地址的指令之前,还包括步骤:安装安卓测试应用;或,启用安卓应用市场。具体地,所述安卓测试应用为识别真机和模拟器的小程序,首先在终端上安装有安卓测试应用,后通过该安卓测试应用执行指令,进行对真机和模拟器的识别。所述启用安卓应用市场为本发明实施例提供的方法嵌入在安卓应用市场的程序中,当终端启用安卓应用市场时,通过安卓应用市场执行指令,进行对真机和模拟器的识别。
具体地,当执行位于特定内存地址的指令时,处理器对指令进行处理;假设所述特定内存地址为$address,当执行$address中的指令(本实施例将执行的指令命名为第一指令)时,若当前执行指令的为真机时,其所采用的为ARM架构Cache缓存,执行时可以预先读取下一条指令;真机上的第一指令会被先行读入一级缓存的指令寄存器(I-Cache)上,中央处理器首先到指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并执行指令;若当前执行指令的为PC的模拟器时,其所采用的为X86架构Cache缓存,执行时只有完成当前的指令才能再进行下一条指令;模拟器上的第一指令会被先行读入模拟的I-Cache中,实际上由于模拟器的架构不同,其实际读入的位置为L1-Cache;在取指令和存取数据时均在L1-Cache中完成存取,并经由同一总线传输。
S02向所述特定内存地址写入指令;
具体地,为向所述特定内存地址中写入与步骤S01中执行的指令不同的指令。沿用步骤S01中的例子,假设所述特定内存地址为$address,当向$address中写入指令(本实施例将写入的指令命名为第二指令)时,若当前执行步骤02的为真机时,其首先将第二指令写入对应的数据寄存器(D-Cache)中,而后将数据同步到$address中,使得$address中的指令被修改为第二指令;若当前执行步骤S02的为PC的模拟器时,其首先将第二指令写入对应的模拟的数据寄存器中,实际上由于模拟器的L1-Cache是一整块的,所以其实际上将第二指令写入L1-Cache中,而后将数据同步到对应$address中,使得$address中的指令被修改为第二指令。
S03循环执行位于所述特定内存地址的指令;
具体地,为循环执行所述特定内存地址中的指令,沿用步骤S01、S02中的例子进行详细解释,假设特定内存地址为$address,当循环执行$address指令时,若当前执行步骤S03的为真机,由于真机的Cache缓存架构上执行指令时可以预先读取下一条指令,所以此时真机从I-Cache中取出缓存中对应$address的指令时,读取的仍然是步骤S01中从$address中加载的第一指令,所以循环执行的全部是第一指令;若当前执行步骤S03的为PC的模拟器时,由于模拟器的Cache缓存架构上执行指令时只有完成当前的指令才能再进行下一条指令,所述当循环执行$address指令时,其第一次执行的为第一指令,进入第二次执行时,L1-Cache解析第二次进入循环时循环程序代码块(即对应的内存指令区域)会被整块加入到缓存L1-Cache中,后续循环体从L1-Cache中取得的就是缓存后的第二指令,所以后续循环执行的指令是第二指令。
S04判断所述写入的指令是否被执行;若是,识别终端为X86架构的模拟器;否则,识别终端为ARM架构的真机。
具体地,根据步骤S03的分析结构,判断所述写入的指令是否被执行,即为判断第二指令是否被执行;从步骤S03的分析中可见,X86架构的模拟器将执行一次第一指令,其余循环执行的指令是第二指令;ARM架构的真机循环执行的全部是第一指令;所以可从执行的指令中判断出终端是真机还是模拟器。
在本实施例中,基于模拟器和真机所采用的架构有所差异,通过指令追踪应用行为的方法,识别出模拟器。其中模拟器采用X86架构Cache缓存,真机采用ARM架构Cache缓存;具体地,通过指令的执行结果追踪检测应用行为,由于识别的过程基于模拟器和真机的结构实现,其提高了对模拟器的识别精度;同时,由于识别的过程为指令的执行,其处理速度较快,且易于实现。进一步地,解决了安卓应用市场如何对采用模拟器进行应用刷量进行防御的问题,确保了应用开发者及消费者的合法利益。
实施例二
结合图2,区别于实施例一,本实施例在所述识别终端为X86架构的模拟器之后,还包括以下步骤:
S11向服务器反馈终端为X86架构模拟器的信息。
具体地,所述服务器为安卓应用市场的服务器,在步骤S04中识别出终端为X86架构模拟器后,向服务器反馈相应信息,以便服务器执行后续相应处理程序。
进一步地,结合图3,区别于实施例一,本实施例在所述识别终端为X86架构的模拟器之后,还包括以下步骤:
S21确认对安卓应用市场中发出的命令为累计量命令;
具体地,所述累计量命令为终端向安卓应用市场发出的命令包括若干条,且其发出的命令处于累加状态;如在实际情形中,若PC端采用模拟器进行刷量,必定向安卓应用市场发出若干条命令,该命令可包括激活、点击、下载等一切对安卓应用市场中某一个或者多个应用发出的命令。
优选地,步骤S21还可设置为确认预置时间段内对安卓应用市场中发出的命令为累计量命令。通过设置预置时间段判断识别出的终端为X86架构的模拟器后,其是否在进行对安卓应用市场中应用进行刷量行为。其中,预置时间段可为1个小时内的时间段或12:PM-9:00AM的时间段(该时间段的设置在此仅为举例,其可根据实际情况进行调整)。例如,预置时间段为1个小时内时,如果终端为X86架构的模拟器在1个小时内对安卓应用市场中的某一或多个应用发出若干条命令时,则可确认为对安卓应用市场中发出的命令为累计量命令。
S22向服务器反馈不计算所述累计量命令对应累计值的信息;或,向服务器反馈所述命令为模拟器发出的累计量命令。
当通过步骤S21确认终端为X86架构的模拟器发出的命令为累计量命令时,将向服务器反馈不计算所述累计量命令对应累计值的信息,或向服务器反馈所述命令为模拟器发出的累计量命令。
在本实施例中,通过步骤S21、S22实现了在识别出终端为X86架构的模拟器后,对其所发出的累计量命令进行控制,确保安卓应用市场中各应用的排名等数据与实际使用数据相符。同时,进一步保证采用X86架构的模拟器在安卓应用市场中正常下载应用的用户的体验,区别出采用模拟器进行刷量和正常使用的两种情况进行处理。
更进一步地,结合图4,区别于实施例一,本实施例在所述识别终端为X86结构的模拟器之后,还包括以下步骤:
S31限制终端对安卓应用市场发出的命令。
所述限制终端对安卓应用市场发出的命令,包括步骤:
获取安卓应用市场中应用的下载排名,限制对安卓应用市场中预定数量的排在最前面的应用发出命令;
或,确认对安卓应用市场中同一应用发出超过预置数量命令,停止执行对所述应用发出的命令;如,设置预置数量为2时,当对安卓应用市场中同一应用发出超过2次的命令时,即发出第三次命令时,安卓应用市场将停止执行对所述应用发出的命令。在保证正常用户采用模拟器在安卓应用市场中下载应用的使用的同时,限制了对安卓应用市场中应用进行刷量的行为。
或,确认对安卓应用市场中应用发出命令,在发出命令后的预置时间段内,停止执行对所述应用发出的命令,提示预置时间段内停止执行所述应用的命令;所述预置时间段与步骤S21所述预置时间段一致,可为1个小时内的时间段或12:PM-9:00AM的时间段(该时间段的设置在此仅为举例,其可根据实际情况进行调整)。
或,确认对安卓应用市场中应用发出的命令为受限命令,停止执行所述受限命令,提示模拟器停止执行所述受限命令。
在本实施例中,通过步骤S31实现了识别出终端为X86结构的模拟器之后,限制终端对安卓应用市场所发出的非正常的进行刷量的命令,在源头处解决对采用模拟器进行刷量的问题。
优选地,区别于实施例一,本实施例在所述识别终端为X86结构的模拟器之后,还包括以下步骤:
获取安卓应用市场中应用的下载排名;
确认对安卓应用市场中预定数量的排在最前面的应用发出的命令为累计量命令;
判断登陆安卓应用市场的用户是否为贵宾用户;
若是贵宾用户,向服务器反馈不计算所述累计量命令对应累计值的信息,或向服务器反馈所述命令为模拟器发出的累计量命令;
若不是贵宾用户,限制对所述应用发出的命令。
具体地,区别于步骤S31,所述贵宾用户区别于其他用户而言,其通过缴费或申请所得。对于贵宾用户所发出的命令,安卓应用市场一般实行区别对待。在本步骤中,区别了贵宾用户采用X86结构的模拟器对安卓应用市场中的应用发出命令的情况。保证了贵宾用户的正常使用。
实施例三
结合图5,本实施例提供一种识别真机和模拟器的装置,包括以下模块:
第一执行模块41,用于执行位于特定内存地址的指令;
具体地,还包括安装模块,用于在所述执行位于特定内存地址的指令之前,安装安卓测试应用;或还包括启动程序模块,用于在所述执行位于特定内存地址的指令之前,启用安卓应用市场。
第一写入模块42,用于向所述特定内存地址写入指令;
第二执行模块43,用于循环执行位于所述特定内存地址的指令;
判断模块44,用于判断所述写入的指令是否被执行;若是,识别终端为X86架构的模拟器;否则,识别终端为ARM架构的真机。
进一步地,本实施例还包括第二写入模块,用于在所述执行位于特定内存地址的指令之前,获取内存地址信息,根据内存地址信息向特定内存地址写入指令。
进一步地,本实施例还包括:
第一反馈模块,用于在所述识别终端为X86架构的模拟器之后,向服务器反馈终端为X86架构模拟器的信息。
或,第二反馈模块,用于所述识别终端为X86架构的模拟器之后,确认对安卓应用市场中发出的命令为累计量命令;向服务器反馈不计算所述累计量命令对应累计值的信息;或,向服务器反馈所述命令为模拟器发出的累计量命令。
或,限制模块,用于在所述识别终端为X86架构的模拟器之后,限制终端对安卓应用市场发出的命令。
所述限制模块包括:
第一限制单元,用于获取安卓应用市场中应用的下载排名,限制对安卓应用市场中预定数量的排在最前面的应用发出命令;
或,第二限制单元,用于确认对安卓应用市场中同一应用发出超过预置数量命令,停止执行对所述应用发出的命令;
或,第三限制单元,用于确认对安卓应用市场中应用发出命令,在发出命令后的预置时间段内,停止执行对所述应用发出的命令,提示预置时间段内停止执行所述应用的命令;
或,第四限制单元,用于确认对安卓应用市场中应用发出的命令为受限命令,停止执行所述受限命令,提示模拟器停止执行所述受限命令。
优选地,本实施还包括第三反馈模块,用于在所述识别终端为X86架构的模拟器之后,获取安卓应用市场中应用的下载排名;确认对安卓应用市场中预定数量的排在最前面的应用发出的命令为累计量命令;判断登陆安卓应用市场的用户是否为贵宾用户;若是贵宾用户,向服务器反馈不计算所述累计量命令对应累计值的信息,或向服务器反馈所述命令为模拟器发出的累计量命令;若不是贵宾用户,限制对所述应用发出的命令。
实施例四
本实施例还提供了识别真机和模拟器的终端,如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图6示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,RF)电路510、存储器520、输入单元530、显示单元540、传感器550、音频电路560、无线保真(wireless fidelity,Wi-Fi)模块570、处理器580、以及电源590等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器580处理;另外,将设计上行的数据发送给基站。通常,RF电路510包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路510还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声纹播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元530可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元540可包括显示面板541,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图6中,触控面板531与显示面板541是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在手机移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器561,传声器562可提供用户与手机之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声纹信号输出;另一方面,传声器562将收集的声纹信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路510以发送给比如另一手机,或者将音频数据输出至存储器520以便进一步处理。
Wi-Fi属于短距离无线传输技术,手机通过Wi-Fi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了Wi-Fi模块570,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器580是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器580可包括一个或多个处理单元;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
手机还包括给各个部件供电的电源590(比如电池),优选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
在本发明实施例中,该终端所包括的处理器580还具有以下功能:权1内容。也即处理器580具备执行上述实施例一或二所述的识别真机和模拟器的方法的功能,在此不再赘述。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种识别真机和模拟器的方法,其特征在于,包括如下步骤:
执行位于特定内存地址的指令;
向所述特定内存地址写入指令;
循环执行位于所述特定内存地址的指令;
判断所述写入的指令是否被执行;若是,识别终端为X86架构的模拟器,在识别终端为X86架构的模拟器之后,确认对安卓应用市场中发出的命令为累计量命令,其中,所述累计量命令为终端向安卓应用市场发出的包括若干条且处于累加状态的命令;向服务器反馈不计算所述累计量命令对应累计值的信息;或,向服务器反馈所述命令为模拟器发出的累计量命令;否则,识别终端为ARM架构的真机。
2.根据权利要求1所述的识别真机和模拟器的方法,其特征在于,所述执行位于特定内存地址的指令之前,还包括步骤:
获取内存地址信息,根据内存地址信息向特定内存地址写入指令。
3.根据权利要求1所述的识别真机和模拟器的方法,其特征在于,所述执行位于特定内存地址的指令之前,还包括步骤:
安装安卓测试应用;
或,启用安卓应用市场。
4.根据权利要求1所述的识别真机和模拟器的方法,其特征在于,所述识别终端为X86架构的模拟器之后,还包括步骤:
向服务器反馈终端为X86架构模拟器的信息。
5.根据权利要求1所述的识别真机和模拟器的方法,其特征在于,所述识别终端为X86架构的模拟器之后,还包括步骤:
限制终端对安卓应用市场发出的命令。
6.根据权利要求5所述的识别真机和模拟器的方法,其特征在于,所述限制终端对安卓应用市场发出的命令,包括步骤:
获取安卓应用市场中应用的下载排名,限制对安卓应用市场中预定数量的排在最前面的应用发出命令;
或,确认对安卓应用市场中同一应用发出超过预置数量命令,停止执行对所述应用发出的命令;
或,确认对安卓应用市场中应用发出命令,在发出命令后的预置时间段内,停止执行对所述应用发出的命令,提示预置时间段内停止执行所述应用的命令;
或,确认对安卓应用市场中应用发出的命令为受限命令,停止执行所述受限命令,提示模拟器停止执行所述受限命令。
7.根据权利要求1所述的识别真机和模拟器的方法,其特征在于,所述识别终端为X86架构的模拟器之后,还包括:
获取安卓应用市场中应用的下载排名;
确认对安卓应用市场中预定数量的排在最前面的应用发出的命令为累计量命令;
判断登陆安卓应用市场的用户是否为贵宾用户;
若是贵宾用户,向服务器反馈不计算所述累计量命令对应累计值的信息,或向服务器反馈所述命令为模拟器发出的累计量命令;
若不是贵宾用户,限制对所述应用发出的命令。
8.一种识别真机和模拟器的装置,其特征在于,包括以下模块:
第一执行模块,用于执行位于特定内存地址的指令;
第一写入模块,用于向所述特定内存地址写入指令;
第二执行模块,用于循环执行位于所述特定内存地址的指令;
判断模块,用于判断所述写入的指令是否被执行;若是,识别终端为X86架构的模拟器,在识别终端为X86架构的模拟器之后,确认对安卓应用市场中发出的命令为累计量命令,其中,所述累计量命令为终端向安卓应用市场发出的包括若干条且处于累加状态的命令;向服务器反馈不计算所述累计量命令对应累计值的信息;或,向服务器反馈所述命令为模拟器发出的累计量命令;否则,识别终端为ARM架构的真机。
9.一种终端,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1~7任一项所述的识别真机和模拟器的方法。
CN201711007765.8A 2017-10-25 2017-10-25 识别真机和模拟器的方法、装置和终端 Active CN107908952B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711007765.8A CN107908952B (zh) 2017-10-25 2017-10-25 识别真机和模拟器的方法、装置和终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711007765.8A CN107908952B (zh) 2017-10-25 2017-10-25 识别真机和模拟器的方法、装置和终端

Publications (2)

Publication Number Publication Date
CN107908952A CN107908952A (zh) 2018-04-13
CN107908952B true CN107908952B (zh) 2021-04-02

Family

ID=61840939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711007765.8A Active CN107908952B (zh) 2017-10-25 2017-10-25 识别真机和模拟器的方法、装置和终端

Country Status (1)

Country Link
CN (1) CN107908952B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108712253B (zh) * 2018-06-06 2020-10-13 北京人人云图信息技术有限公司 一种基于手机传感器指纹的伪造移动端识别方法及装置
CN108920952A (zh) * 2018-06-20 2018-11-30 融慧金科金融服务外包(北京)有限公司 一种基于设备传感器类别精度识别安卓虚拟机的方法
CN111277943B (zh) * 2018-11-16 2021-05-25 中国移动通信集团有限公司 一种系统运行环境的检测方法、装置及存储介质
CN110516447B (zh) * 2019-08-21 2022-02-11 上海连尚网络科技有限公司 一种识别终端模拟器的方法与设备
CN111079149A (zh) * 2019-10-21 2020-04-28 厦门美柚股份有限公司 识别Android模拟器的方法及装置
CN110990202A (zh) * 2019-10-21 2020-04-10 厦门美柚股份有限公司 识别Android模拟器的方法及相关设备
CN113132760B (zh) * 2019-12-31 2022-12-16 中移(苏州)软件技术有限公司 视频数据的获取方法、装置、电子设备及存储介质
CN112100615A (zh) * 2020-09-11 2020-12-18 北京明略昭辉科技有限公司 设备的识别方法及装置、存储介质、电子设备
CN112288428A (zh) * 2020-09-24 2021-01-29 咪咕文化科技有限公司 模拟器的检测方法、装置、电子设备及存储介质
CN112559328A (zh) * 2020-12-04 2021-03-26 北京字节跳动网络技术有限公司 指令模拟引擎的判别方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408336A (zh) * 2014-12-12 2015-03-11 北京奇虎科技有限公司 检测假机型的方法及装置
CN106201872A (zh) * 2016-07-05 2016-12-07 北京鼎源科技有限公司 一种Android系统的运行环境检测方法
CN106294105A (zh) * 2015-05-22 2017-01-04 深圳市腾讯计算机系统有限公司 刷量工具检测方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9898388B2 (en) * 2014-05-23 2018-02-20 Mentor Graphics Corporation Non-intrusive software verification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408336A (zh) * 2014-12-12 2015-03-11 北京奇虎科技有限公司 检测假机型的方法及装置
CN106294105A (zh) * 2015-05-22 2017-01-04 深圳市腾讯计算机系统有限公司 刷量工具检测方法和装置
CN106201872A (zh) * 2016-07-05 2016-12-07 北京鼎源科技有限公司 一种Android系统的运行环境检测方法

Also Published As

Publication number Publication date
CN107908952A (zh) 2018-04-13

Similar Documents

Publication Publication Date Title
CN107908952B (zh) 识别真机和模拟器的方法、装置和终端
CN107329985B (zh) 一种页面的收藏方法、装置和移动终端
CN106874037B (zh) 应用程序安装方法、装置及移动终端
CN107943683B (zh) 一种测试脚本生成方法、装置、电子设备及存储介质
CN110196795B (zh) 检测移动终端应用运行状态的方法及相关装置
CN107908407B (zh) 编译方法、装置及终端设备
CN109753425B (zh) 弹窗处理方法及装置
CN112148579B (zh) 一种用户界面的测试方法和装置
CN108920220B (zh) 一种函数调用的方法、装置及终端
CN106201491A (zh) 移动终端和移动终端远程协助过程控制方法、装置
US20160364495A1 (en) Url error-correcting method, server, terminal and system
CN106055480A (zh) 一种调试网页的方法及终端
CN106201484A (zh) 应用程序的配置方法、装置及终端设备
EP2869604B1 (en) Method, apparatus and device for processing a mobile terminal resource
CN106155717A (zh) 一种将sdk集成到第三方apk的方法和装置
CN111966491A (zh) 统计占用内存的方法及终端设备
CN109491670A (zh) 一种页面显示方法及终端设备
CN108615158B (zh) 风险检测方法、装置、移动终端和存储介质
CN106933636A (zh) 启动插件服务的方法、装置和终端设备
CN106203015A (zh) 应用程序的配置方法、装置及终端设备
CN106407800A (zh) 一种hook的方法及终端设备
US9742901B2 (en) Method, apparatus and terminal device for obtaining call log
US11150913B2 (en) Method, device, and terminal for accelerating startup of application
CN106709330B (zh) 记录文件执行行为的方法及装置
CN111177612B (zh) 一种页面登录鉴权的方法及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200417

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 510640 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 15 layer self unit 02

Applicant before: GUANGZHOU UC NETWORK TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant