CN110516447A - 一种识别终端模拟器的方法与设备 - Google Patents
一种识别终端模拟器的方法与设备 Download PDFInfo
- Publication number
- CN110516447A CN110516447A CN201910774713.6A CN201910774713A CN110516447A CN 110516447 A CN110516447 A CN 110516447A CN 201910774713 A CN201910774713 A CN 201910774713A CN 110516447 A CN110516447 A CN 110516447A
- Authority
- CN
- China
- Prior art keywords
- instruction
- virtualization
- user equipment
- behavioural information
- machine
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请的目的是提供一种识别终端模拟器的方法与设备,该方法包括:通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得;将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配;获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器。本申请可以增加识别终端模拟器的准确度,能达到黑客无法绕过的效果。
Description
技术领域
本申请涉及通信领域,尤其涉及一种用于识别终端模拟器的技术。
背景技术
随着时代的发展,市面上出现了越来越多的终端模拟器,终端模拟器可以模拟实际终端设备的行为,终端模拟器容易被黑客利用来作出一些破坏正常秩序的行为(例如,刷单),如何准确的识别终端模拟器成为了一个重要问题。在现有技术中,通常采用关键文件和关键属性扫描的方案来识别终端模拟器,黑客很容易通过修改这些关键文件或关键属性来绕过此种方案。
发明内容
本申请的一个目的是提供一种识别终端模拟器的方法与设备。
根据本申请的一个方面,提供了一种识别终端模拟器的方法,该方法包括:
通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得;
将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配;
获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器。
根据本申请的一个方面,提供了一种识别终端模拟器的设备,该设备包括:
一一模块,用于通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得;
一二模块,用于将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配;
一三模块,用于获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器。
根据本申请的一个方面,提供了一种识别终端模拟器的设备,其中,该设备包括:
通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得;
将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配;
获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器。
根据本申请的一个方面,提供了一种存储指令的计算机可读介质,所述指令在被执行时使得系统进行如下操作:
通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得;
将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配;
获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器。
与现有技术相比,本申请通过将机器指令进行虚拟化处理得到虚拟化指令,并在用户设备的虚拟机中解释执行虚拟化指令,将虚拟化指令在被解析执行过程中的指令行为信息与虚拟化指令在参考设备中对应的参考指令行为信息进行比较,检测用户设备是否为终端模拟器,从而可以增加识别终端模拟器的准确度,能达到黑客无法绕过的效果。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一些实施例的一种识别终端模拟器的方法流程图;
图2示出根据本申请一些实施例的一种识别终端模拟器的设备结构图;
图3示出可被用于实施本申请中所述各个实施例的示例性系统。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请所指设备包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于任何一种可与用户进行人机交互(例如通过触摸板进行人机交互)的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、嵌入式设备等。所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,所述设备还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的程序。
当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。
图1示出了根据本申请一个实施例的一种识别终端模拟器的方法流程图,该方法包括步骤S11、步骤S12和步骤S13。在步骤S11中,用户设备通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得;在步骤S12中,用户设备将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配;在步骤S13中,用户设备获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器。
在步骤S11中,用户设备通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得。在一些实施例中,虚拟机是通过软件及模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整系统,可以用于解释和运行字节码,包括处理器、寄存器、栈、堆等字节码运行的必要环境,可以将虚拟机作为目标应用中的一个独立模块,随着目标应用被安装在用户设备上,虚拟化指令是通过对机器指令执行虚拟化处理所得,其中,机器指令包括但不限于arm、thumb、thumb32、arm64等指令集中的指令,比如MOV、XOR、CMP、RET等指令,虚拟化处理包括但不限于使用一套自定义的字节码形式的虚拟化指令来替换掉机器指令,比如,使用自定义字节码“0xa0”来替换掉机器指令MOV,虚拟化指令在虚拟机中解释执行,该解释执行操作至少包括将虚拟化指令执行逆虚拟化处理、得到虚拟化指令对应的机器指令、执行机器指令。
在步骤S12中,用户设备将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配。在一些实施例中,指令行为信息包括但不限于指令的运行结果、指令运行过程中产生的中间变量、指令运行过程中寄存器、栈、堆等指令运行环境的变化情况,参考设备可以是终端模拟器,也可以是实际终端设备,通过将虚拟化指令在用户设备上解释执行时的第一指令行为信息与虚拟化指令在参考设备上解释执行时的第二指令行为信息进行匹配,通过比较第一指令行为信息和第二指令行为信息之间的相似度是否大于或等于预定的相似度阈值(比如,90%)来确定第一指令行为信息和第二指令行为信息是否匹配,其中,虚拟化指令在参考设备上解释执行时的第二指令行为信息是已知的,可以预先存储在用户设备上,也可以实时从对应的服务器中请求获取。
在步骤S13中,用户设备获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器。在一些实施例中,参考设备的设备类型信息用于指示参考设备是否是终端模拟器以及参考设备为终端模拟器时所使用的架构类型(比如,arm架构、x86架构等),若设备类型信息指示参考设备为终端模拟器,且第一指令行为信息与第二指令行为信息之间的相似度大于或等于预定的相似度阈值(比如,90%),可以确定第一指令行为信息与第二指令行为信息相匹配,从而识别所述用户设备为终端模拟器。
在一些实施例中,所述方法还包括以下至少任一项:若所述设备类型信息指示所述参考设备为实际终端设备,且所述第一指令行为信息与所述第二指令行为信息失配,识别所述用户设备为终端模拟器;若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息失配,识别所述用户设备为实际终端设备;若所述设备类型信息指示所述参考设备为实际终端设备,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为实际终端设备。例如,预定的相似度阈值是90,若设备类型信息指示参考设备为实际终端设备,且第一指令行为信息与第二指令行为信息之间的相似度是80%,小于预定的相似度阈值,第一指令行为信息与第二指令行为信息不匹配,可以识别用户设备为终端模拟器;若设备类型信息指示参考设备为终端模拟器,且第一指令行为信息与第二指令行为信息之间的相似度是70%,小于预定的相似度阈值,第一指令行为信息与第二指令行为信息不匹配,可以识别用户设备为实际终端设备;若设备类型信息指示参考设备为实际终端设备,且第一指令行为信息与第二指令行为信息之间的相似度是95%,大于预定的相似度阈值,第一指令行为信息与第二指令行为信息相匹配,可以识别用户设备为实际终端设备。
在一些实施例中,所述方法还包括步骤S14(未示出),在步骤S14中,用户设备根据所述参考设备的设备类型信息,确定所述终端模拟器的设备类型信息。例如,若已经识别出用户设备为终端模拟器,若设备类型信息指示参考设备的架构是arm架构的终端模拟器,则可以确定终端模拟器的架构同样也是arm架构,或者,若设备类型信息指示参考设备的架构是x86架构的终端模拟器,则可以确定终端模拟器的架构同样也是x86架构。
在一些实施例中,所述步骤S13包括:获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为基于intel架构的终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为基于intel架构的终端模拟器。在一些实施例中,基于intel架构的终端模拟器是目前市面上的主流终端模拟器,包括HAXM(intel的硬件加速执行管理器),HAXM是使用了VT(intel虚拟化技术)的硬件辅助虚拟化引擎,可以大幅度提升终端模拟器的性能和运行速度,由于HAXM会对虚拟机上的机器指令的执行过程产生影响,以至于相同的机器指令在基于intel架构的终端模拟器上的第一指令行为信息会与在实际终端设备上的第二指令行为信息有所差别,以此当参考设备是基于intel架构的终端模拟器时,将用户设备上的第一指令行为信息与参考设备上的第二指令行为信息进行匹配,若第一指令行为信息与第二指令行为信息相匹配,则识别用户设备为基于intel架构的终端模拟器。
在一些实施例中,所述方法还包括步骤S15(未示出),在步骤S15中,若所述用户设备为终端模拟器,将检测结果发送至网络设备,以供所述网络设备标记所述用户设备对应的一个或多个设备行为。在一些实施例中,当检测结果表明用户设备为终端模拟器时,将检测结果发送到对应的服务器,其中,检测结果包括但不限于能唯一标识用户设备的标识信息(比如mac地址),服务器收到该检测结果后,将数据库、文件或服务器缓存中存储的与该标识信息对应的设备行为标记出来,被标记的设备行为由于是终端模拟器行为而不是实际终端设备行为,故可能存在一定的安全隐患,将这些设备行为标记出来以供服务器后续对这些设备行为进行安全性分析,其中,设备行为包括但不限于投票行为、刷单行为、与增值服务相关的行为等。
在一些实施例中,若所述虚拟机位于所述用户设备上的目标应用中;其中,所述方法还包括步骤S16(未示出),在步骤S16中,若所述用户设备为终端模拟器,禁用所述目标应用中的一个或多个功能。在一些实施例中,若虚拟机是安装在用户设备上的目标应用中的某个模块、插件或寄宿程序,当用户设备是终端模拟器时,禁止用户使用目标应用中的一个或多个功能,该一个或多个功能包括但不限于与增值服务相关的功能、与网银或虚拟货币相关的功能,以此来增强目标应用的安全性。
在一些实施例中,所述步骤S11包括:用户设备通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得,所述虚拟化指令的数量满足预定的数量阈值。在一些实施例中,只有当虚拟机解释执行的虚拟化指令条数超过预定的数量阈值(比如,5条),才能得到相对正确的检测结果,通过将多个虚拟化指令在被解析执行过程中对应的第一指令行为信息与多个虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配(比如,与第二指令行为信息相匹配的虚拟化指令条数占解释执行的虚拟化指令总条数的比例超过90%,才能准确地识别用户设备为终端模拟器),才能确保识别结果的正确性,尽量减少出错的机率。
在一些实施例中,若所述虚拟机位于所述用户设备上的目标应用中;其中,所述步骤S11包括:用户设备响应于所述目标应用的安装完成事件,通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得。在一些实施例中,当目标应用在用户设备上第一次安装完成的时候,会通过目标应用中的虚拟机解释执行一条或多条虚拟化指令,来检测用户设备是否是终端模拟器。
在一些实施例中,若所述虚拟机位于目标应用中;其中,所述步骤S11包括:用户设备响应于所述目标应用的更新完成事件,通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得。在一些实施例中,当目标应用在用户设备上每一次版本更新完成的时候,会通过目标应用中的虚拟机解释执行一条或多条虚拟化指令,来检测用户设备是否是终端模拟器。
在一些实施例中,所述通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,包括:通过所述用户设备中的虚拟机对一条或多条虚拟化指令执行逆虚拟化处理,解释得到与所述虚拟化指令对应的一条或多条机器指令;通过所述虚拟机执行所述机器指令;其中,所述步骤S12包括:用户设备将所述机器指令在被执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配。例如,虚拟化指令是“Oxa0”,虚拟机先对该虚拟化指令执行逆虚拟化处理,得到对应的机器指令MOV,然后在虚拟机中执行该机器指令MOV,将该机器指令MOV在被执行过程中的第一指令行为信息与该机器指令MOV在参考设备中对应的第二指令行为信息进行匹配,通过比较第一指令行为信息与第二指令行为信息之间的相似度是否大于或等于预定的相似度阈值(比如,90%),来确定第一指令行为信息和第二指令行为信息是否匹配
图2出了根据本申请一个实施例的一种识别终端模拟器的设备,该设备包括一一模块11、一二模块12和一三模块13。一一模块11,用于通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得;一二模块12,用于将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配;一三模块13,用于获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器。
一一模块11,用于通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得。在一些实施例中,虚拟机是通过软件及模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整系统,可以用于解释和运行字节码,包括处理器、寄存器、栈、堆等字节码运行的必要环境,可以将虚拟机作为目标应用中的一个独立模块,随着目标应用被安装在用户设备上,虚拟化指令是通过对机器指令执行虚拟化处理所得,其中,机器指令包括但不限于arm、thumb、thumb32、arm64等指令集中的指令,比如MOV、XOR、CMP、RET等指令,虚拟化处理包括但不限于使用一套自定义的字节码形式的虚拟化指令来替换掉机器指令,比如,使用自定义字节码“0xa0”来替换掉机器指令MOV,虚拟化指令在虚拟机中解释执行,该解释执行操作至少包括将虚拟化指令执行逆虚拟化处理、得到虚拟化指令对应的机器指令、执行机器指令。
一二模块12,用于将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配。在一些实施例中,指令行为信息包括但不限于指令的运行结果、指令运行过程中产生的中间变量、指令运行过程中寄存器、栈、堆等指令运行环境的变化情况,参考设备可以是终端模拟器,也可以是实际终端设备,通过将虚拟化指令在用户设备上解释执行时的第一指令行为信息与虚拟化指令在参考设备上解释执行时的第二指令行为信息进行匹配,通过比较第一指令行为信息和第二指令行为信息之间的相似度是否大于或等于预定的相似度阈值(比如,90%)来确定第一指令行为信息和第二指令行为信息是否匹配,其中,虚拟化指令在参考设备上解释执行时的第二指令行为信息是已知的,可以预先存储在用户设备上,也可以实时从对应的服务器中请求获取。
一三模块13,用于获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器。在一些实施例中,参考设备的设备类型信息用于指示参考设备是否是终端模拟器以及参考设备为终端模拟器时所使用的架构类型(比如,arm架构、x86架构等),若设备类型信息指示参考设备为终端模拟器,且第一指令行为信息与第二指令行为信息之间的相似度大于或等于预定的相似度阈值(比如,90%),可以确定第一指令行为信息与第二指令行为信息相匹配,从而识别所述用户设备为终端模拟器。
在一些实施例中,所述设备还用于以下至少任一项:若所述设备类型信息指示所述参考设备为实际终端设备,且所述第一指令行为信息与所述第二指令行为信息失配,识别所述用户设备为终端模拟器;若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息失配,识别所述用户设备为实际终端设备;若所述设备类型信息指示所述参考设备为实际终端设备,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为实际终端设备。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述设备还包括一四模块14(未示出),一四模块14用于据所述参考设备的设备类型信息,确定所述终端模拟器的设备类型信息。在此,一四模块14的具体实现方式与图1中有关步骤S14的实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述一三模块13用于:获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为基于intel架构的终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为基于intel架构的终端模拟器。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述设备还包括一四模块14(未示出),一四模块14用于若所述用户设备为终端模拟器,将检测结果发送至网络设备,以供所述网络设备标记所述用户设备对应的一个或多个设备行为。在此,一四模块14的具体实现方式与图1中有关步骤S14的实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,若所述虚拟机位于所述用户设备上的目标应用中;其中,所述设备还包括一五模块15(未示出),一五模块15用于若所述用户设备为终端模拟器,禁用所述目标应用中的一个或多个功能。在此,一五模块15的具体实现方式与图1中有关步骤S15的实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述一一模块11用于:通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得,所述虚拟化指令的数量满足预定的数量阈值。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,若所述虚拟机位于所述用户设备上的目标应用中;其中,所述一一模块11用于:响应于所述目标应用的安装完成事件,通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,若所述虚拟机位于目标应用中;其中,所述一一模块11用于:响应于所述目标应用的更新完成事件,通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,包括:通过所述用户设备中的虚拟机对一条或多条虚拟化指令执行逆虚拟化处理,解释得到与所述虚拟化指令对应的一条或多条机器指令;通过所述虚拟机执行所述机器指令;其中,所述一二模块12用于:将所述机器指令在被执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
图3出了可被用于实施本申请中所述的各个实施例的示例性系统。
如图3示在一些实施例中,系统300能够作为各所述实施例中的任意一个设备。在一些实施例中,系统300可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备320)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器305)。
对于一个实施例,系统控制模块310可包括任意适当的接口控制器,以向(一个或多个)处理器305中的至少一个和/或与系统控制模块310通信的任意适当的设备或组件提供任意适当的接口。
系统控制模块310可包括存储器控制器模块330,以向系统存储器315提供接口。存储器控制器模块330可以是硬件模块、软件模块和/或固件模块。
系统存储器315可被用于例如为系统300加载和存储数据和/或指令。对于一个实施例,系统存储器315可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器315可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,系统控制模块310可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备320及(一个或多个)通信接口325提供接口。
例如,NVM/存储设备320可被用于存储数据和/或指令。NVM/存储设备320可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备320可包括在物理上作为系统300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备320可通过网络经由(一个或多个)通信接口325进行访问。
(一个或多个)通信接口325可为系统300提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器(例如,存储器控制器模块330)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,系统300可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、持有计算设备、平板电脑、上网本等)。在各个实施例中,系统300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统300包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (12)
1.一种识别终端模拟器的方法,应用于用户设备,其中,所述方法包括:
通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得;
将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配;
获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器。
2.根据权利要求1所述的方法,其中,所述方法还包括以下至少任一项:
若所述设备类型信息指示所述参考设备为实际终端设备,且所述第一指令行为信息与所述第二指令行为信息失配,识别所述用户设备为终端模拟器;
若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息失配,识别所述用户设备为实际终端设备;
若所述设备类型信息指示所述参考设备为实际终端设备,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为实际终端设备。
3.根据权利要求1所述的方法,其中,所述方法还包括:
根据所述参考设备的设备类型信息,确定所述终端模拟器的设备类型信息。
4.根据权利要求1所述的方法,其中,所述获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为终端模拟器,包括:
获取所述参考设备的设备类型信息,若所述设备类型信息指示所述参考设备为基于intel架构的终端模拟器,且所述第一指令行为信息与所述第二指令行为信息相匹配,识别所述用户设备为基于intel架构的终端模拟器。
5.根据权利要求1所述的方法,其中,所述方法还包括:
若所述用户设备为终端模拟器,将检测结果发送至网络设备,以供所述网络设备标记所述用户设备对应的一个或多个设备行为。
6.根据权利要求1所述的方法,其中,若所述虚拟机位于所述用户设备上的目标应用中;
其中,所述方法还包括:
若所述用户设备为终端模拟器,禁用所述目标应用中的一个或多个功能。
7.根据权利要求1所述的方法,其中,所述通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得,包括:
通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得,所述虚拟化指令的数量满足预定的数量阈值。
8.根据权利要求1所述的方法,其中,若所述虚拟机位于所述用户设备上的目标应用中;
其中,所述通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得,包括:
响应于所述目标应用的安装完成事件,通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得。
9.根据权利要求1所述的方法,其中,若所述虚拟机位于目标应用中;
其中,所述通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得,包括:
响应于所述目标应用的更新完成事件,通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,其中,每条虚拟化指令对应于一条机器指令并通过对该机器指令执行虚拟化处理所得。
10.根据权利要求8或9的方法,其中,所述通过所述用户设备中的虚拟机解析执行一条或多条虚拟化指令,包括:
通过所述用户设备中的虚拟机对一条或多条虚拟化指令执行逆虚拟化处理,解释得到与所述虚拟化指令对应的一条或多条机器指令;
通过所述虚拟机执行所述机器指令;
其中,所述将所述虚拟化指令在被解析执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配,包括:
将所述机器指令在被执行过程中的第一指令行为信息与所述虚拟化指令在参考设备中被解析执行时的第二指令行为信息进行匹配。
11.一种识别终端模拟器的设备,其中,所述设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至10中任一项所述方法的操作。
12.一种存储指令的计算机可读介质,所述指令在被执行时使得系统进行如权利要求1至10中任一项所述方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910774713.6A CN110516447B (zh) | 2019-08-21 | 2019-08-21 | 一种识别终端模拟器的方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910774713.6A CN110516447B (zh) | 2019-08-21 | 2019-08-21 | 一种识别终端模拟器的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110516447A true CN110516447A (zh) | 2019-11-29 |
CN110516447B CN110516447B (zh) | 2022-02-11 |
Family
ID=68627085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910774713.6A Active CN110516447B (zh) | 2019-08-21 | 2019-08-21 | 一种识别终端模拟器的方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110516447B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379967A (zh) * | 2020-11-12 | 2021-02-19 | 北京字节跳动网络技术有限公司 | 模拟器检测方法、装置、设备及介质 |
CN112559328A (zh) * | 2020-12-04 | 2021-03-26 | 北京字节跳动网络技术有限公司 | 指令模拟引擎的判别方法、装置、设备及介质 |
CN113282304A (zh) * | 2021-05-14 | 2021-08-20 | 杭州云深科技有限公司 | 基于app安装列表识别虚拟机的系统 |
CN114706630A (zh) * | 2022-04-14 | 2022-07-05 | 上海上讯信息技术股份有限公司 | 一种基于文件格式识别模拟器的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254120A (zh) * | 2011-08-09 | 2011-11-23 | 成都市华为赛门铁克科技有限公司 | 恶意代码的检测方法、系统及相关装置 |
CN103902910A (zh) * | 2013-12-30 | 2014-07-02 | 北京奇虎科技有限公司 | 检测智能终端中恶意代码的方法及装置 |
CN107704760A (zh) * | 2017-09-30 | 2018-02-16 | 北京梆梆安全科技有限公司 | 一种基于底层指令的模拟器检测方法、装置及设备 |
CN107908952A (zh) * | 2017-10-25 | 2018-04-13 | 广州优视网络科技有限公司 | 识别真机和模拟器的方法、装置和终端 |
US20190088099A1 (en) * | 2017-09-18 | 2019-03-21 | Comcast Cable Communications, Llc | Automatic Presence Simulator For Security Systems |
CN109948308A (zh) * | 2019-03-13 | 2019-06-28 | 智者四海(北京)技术有限公司 | 代码安全保护方法、装置、电子设备和计算机可读存储介质 |
-
2019
- 2019-08-21 CN CN201910774713.6A patent/CN110516447B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254120A (zh) * | 2011-08-09 | 2011-11-23 | 成都市华为赛门铁克科技有限公司 | 恶意代码的检测方法、系统及相关装置 |
CN103902910A (zh) * | 2013-12-30 | 2014-07-02 | 北京奇虎科技有限公司 | 检测智能终端中恶意代码的方法及装置 |
US20190088099A1 (en) * | 2017-09-18 | 2019-03-21 | Comcast Cable Communications, Llc | Automatic Presence Simulator For Security Systems |
CN107704760A (zh) * | 2017-09-30 | 2018-02-16 | 北京梆梆安全科技有限公司 | 一种基于底层指令的模拟器检测方法、装置及设备 |
CN107908952A (zh) * | 2017-10-25 | 2018-04-13 | 广州优视网络科技有限公司 | 识别真机和模拟器的方法、装置和终端 |
CN109948308A (zh) * | 2019-03-13 | 2019-06-28 | 智者四海(北京)技术有限公司 | 代码安全保护方法、装置、电子设备和计算机可读存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379967A (zh) * | 2020-11-12 | 2021-02-19 | 北京字节跳动网络技术有限公司 | 模拟器检测方法、装置、设备及介质 |
CN112379967B (zh) * | 2020-11-12 | 2023-11-03 | 抖音视界有限公司 | 模拟器检测方法、装置、设备及介质 |
CN112559328A (zh) * | 2020-12-04 | 2021-03-26 | 北京字节跳动网络技术有限公司 | 指令模拟引擎的判别方法、装置、设备及介质 |
CN112559328B (zh) * | 2020-12-04 | 2024-08-20 | 抖音视界有限公司 | 指令模拟引擎的判别方法、装置、设备及介质 |
CN113282304A (zh) * | 2021-05-14 | 2021-08-20 | 杭州云深科技有限公司 | 基于app安装列表识别虚拟机的系统 |
CN113282304B (zh) * | 2021-05-14 | 2022-04-29 | 杭州云深科技有限公司 | 基于app安装列表识别虚拟机的系统 |
CN114706630A (zh) * | 2022-04-14 | 2022-07-05 | 上海上讯信息技术股份有限公司 | 一种基于文件格式识别模拟器的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110516447B (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Deitel | Java how to program | |
CN101976202B (zh) | 使用多个虚拟机监控器处理特许事件的方法和装置 | |
CN110516447A (zh) | 一种识别终端模拟器的方法与设备 | |
CN105893234B (zh) | 用于软件测试的方法和计算设备 | |
US10255086B2 (en) | Determining optimal methods for creating virtual machines | |
US20170154136A1 (en) | Simulation of virtual processors | |
CN106970821A (zh) | 一种kvm虚拟化下处理i/o请求的方法和装置 | |
US8838430B1 (en) | Detection of memory access violation in simulations | |
CN103678115B (zh) | 在混合模式程序中检测源代码差错的位置的设备和方法 | |
CN113127050B (zh) | 一种应用资源打包过程监控方法、装置、设备和介质 | |
CN105453033A (zh) | 程序测试服务 | |
US10565000B2 (en) | Method and apparatus for online upgrade of kernel-based virtual machine module | |
CN110597597B (zh) | 硬件的虚拟化方法、系统、装置及存储介质 | |
US20160092313A1 (en) | Application Copy Counting Using Snapshot Backups For Licensing | |
CN111385661B (zh) | 语音控制全屏播放的方法、装置、终端及存储介质 | |
US11726904B2 (en) | Controlled input/output in progress state during testcase processing | |
US10445218B2 (en) | Execution of graphic workloads on a simulated hardware environment | |
CN109460187A (zh) | 一种qcow2文件数据一致性验证方法及验证终端 | |
CN111367799B (zh) | 定位源代码崩溃位置的方法、装置、介质及电子设备 | |
US11205092B2 (en) | Clustering simulation failures for triage and debugging | |
CN107861795B (zh) | 模拟物理tcm芯片的方法、系统、装置及可读存储介质 | |
US9274791B2 (en) | Verification of a vector execution unit design | |
CN116540929A (zh) | 磁盘阵列的虚拟化读取方法、装置、电子设备及存储介质 | |
US11501046B2 (en) | Pre-silicon chip model of extracted workload inner loop instruction traces | |
CN115185638A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |