CN112288428A - 模拟器的检测方法、装置、电子设备及存储介质 - Google Patents
模拟器的检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112288428A CN112288428A CN202011015090.3A CN202011015090A CN112288428A CN 112288428 A CN112288428 A CN 112288428A CN 202011015090 A CN202011015090 A CN 202011015090A CN 112288428 A CN112288428 A CN 112288428A
- Authority
- CN
- China
- Prior art keywords
- simulator
- instruction sequence
- terminal
- arm instruction
- arm
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种模拟器的检测方法、装置、电子设备及存储介质,所述方法包括:控制应用程序执行预设的ARM指令序列,所述ARM指令序列包括用于检测运行所述应用程序的终端的类型的运算指令;根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器。本发明的模拟器的检测方法,通过执行包括有可检测运行应用程序的终端是否为模拟器的ARM指令序列,得到执行结果,进而,可以根据执行结果的不同检测出终端是否为模拟器,具有检测准确性高的优点。
Description
技术领域
本发明涉及互联网信息安全技术领域,具体涉及一种模拟器的检测方法、装置、电子设备及存储介质。
背景技术
使用安卓系统的移动智能设备进行移动支付交易的行为越来越多。但是,通过安卓模拟器来冒充真实用户操作来实现恶意扣费、领取优惠券等违法获利行为也越来越多,由此,给终端用户和移动交易支付平台的提供商(例如电信运营商、互联网厂商)造成了损失。
检测安卓模拟器的技术手段通常包括检测硬件参数、终端系统环境特征、应用签名数据等。然而,由于安卓系统是一个开放源代码的技术平台,因此恶意攻击者可以下载其源代码之后,插入作弊功能模块和作弊数据,来仿冒真实安卓设备上的对应硬件和软件特征查询接口,导致检测手段失效。
发明内容
基于现有技术中存在的问题,本发明实施例中提出一种模拟器的检测方法、装置、电子设备及存储介质。
第一方面,本发明实施例中提供了一种模拟器的检测方法,所述方法包括:
控制应用程序执行预设的ARM指令序列,所述ARM指令序列包括用于检测运行所述应用程序的终端的类型的运算指令;
根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器。
进一步地,在所述执行预设的ARM指令序列之前,所述方法还包括:
创建所述预设的ARM指令序列;
所述创建所述预设的ARM指令序列,包括:
编写用于执行算术和/或逻辑运算的汇编指令序列;
从所述汇编指令序列中选择任意目标指令,记录所述目标指令的地址;
根据所述目标指令的地址,将存储的所述目标指令替换为目标运算指令,以根据所述目标运算指令得到所述ARM指令序列,其中,所述目标运算指令是用于检测所述终端是否为模拟器的指令。
进一步地,在得到所述ARM指令序列之后,所述方法还包括:
对所述ARM指令序列进行编辑,得到机器码,其中,所述机器码中包括由所述ARM指令序列编辑得到的二进制机器码;
将所述二进制机器码保存在所述应用程序的源代码中。
进一步地,所述控制应用程序执行预设的ARM指令序列,包括:
控制所述应用程序中的主进程创建子进程,以通过所述子进程执行所述ARM指令序列;
控制所述主进程监听所述子进程对所述ARM指令序列的执行结果,以根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器。
进一步地,所述控制主进程监听所述子进程对所述ARM指令序列的执行结果,以根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器,包括:
所述主进程监听到所述子进程运行崩溃,或者所述执行结果与预定运行结果不匹配时,确定所述终端是模拟器。
进一步地,在根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器之后,所述方法还包括:
根据预设的加密方式对所述终端的类型的检测结果进行加密处理,得到加密文件;
将所述加密文件发送给所述服务器。
进一步地,所述加密方式为所述服务器从预设的多个加密方式中随机选择的任意加密方式。
第二方面,本发明实施例中还提供了一种模拟器的检测装置,包括:
执行模块,用于控制应用程序执行预设的ARM指令序列,所述ARM指令序列包括用于检测运行所述应用程序的终端的类型的运算指令;
检测模块,用于根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器。
第三方面,本发明实施例中还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的模拟器的检测方法。
第四方面,本发明实施例中还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的模拟器的检测方法。
由上述技术方案可知,本发明实施例中提供的模拟器的检测方法、装置、电子设备及存储介质,通过执行包括有可检测运行应用程序的终端是否为模拟器的ARM指令序列,得到执行结果,进而,可以根据执行结果的不同检测出终端是否为模拟器,具有检测准确性高的优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例中提供的模拟器的检测方法的流程图;
图2是本发明另一个实施例中提供的模拟器的检测方法的流程图;
图3是本发明一个实施例中提供的模拟器的检测装置的结构示意图;
图4是本发明一个实施例中提供的电子设备的结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
以下结合附图描述根据本发明实施例的模拟器的检测方法、装置、电子设备及存储介质。
图1示出了本发明一个实施例中提供的模拟器的检测方法的流程图,如图1所示,本发明的实施例中提供的模拟器的检测方法,具体包括如下内容:
S101:控制应用程序执行预设的ARM指令序列,其中,ARM指令序列包括用于检测运行应用程序的终端的类型的运算指令。
其中,终端的类型例如包括真实的终端设备和模拟器,真实的终端设备例如为安装有第一操作系统的智能终端,如:智能手机、PAD等。第一操作系统例如为安卓操作系统。
S102:根据ARM指令序列的执行结果,确定终端是否为模拟器。相应地,模拟器例如为安卓模拟器。即:可以确定出运行应用程序的终端是智能终端还是模拟器。
根据本发明实施例的模拟器的检测方法,通过执行包括有可检测运行应用程序的终端是否为模拟器的ARM指令序列,得到执行结果,进而,可以根据执行结果的不同检测出终端是否为模拟器,具有检测准确性高的优点。
下面以安卓操作系统的智能手机以及安卓模拟器为例,对本发明实施例的方法进行更为详细的描述。
在本发明的一个实施例中,在执行预设的ARM指令序列之前,本发明实施例的方法还包括创建预设的ARM指令序列,其中,创建预设的ARM指令序列,包括:编写用于执行算术和/或逻辑运算的汇编指令序列;从汇编指令序列中选择任意目标指令,记录目标指令的地址;根据目标指令的地址,将存储的目标指令替换为目标运算指令,以根据目标运算指令得到ARM指令序列,其中,目标运算指令是用于检测终端是否为模拟器的指令。
具体来说,根据ARM指令序列的格式,编写出一组汇编指令序列来执行一个算术和/或逻辑运算序列,其中,算术和/或逻辑运算序列例如为加、减、乘、除、移位、与、或、非、异或等操作。汇编指令序列中包括多个汇编指令。
在汇编指令序列中,任意选择其中一个汇编指令作为目标指令,计算并记录该目标指令的地址,其中,该地址例如为目标指令的符号地址或者目标指令的相对地址,其中,该地址是存储目标指令的地址。
在汇编指令序列中的选择的目标指令前,插入一个运算指令,即:目标运算指令,该运算指令是内存中的另外一个预设的内存单元里的指令,将该运算指令替换目标指令对应的符号地址或者相对地址所指示的内存单元中,从而将修改后的汇编指令序列作为创建的ARM指令序列。
需要说明的是,运算指令替换目标指令的方式,可以是改变目标指令所用的参数或运算方法,也可以是对目标指令的完全替换。
在得到ARM指令序列之后,本发明实施例的方法,还包括:对ARM指令序列进行编辑,得到机器码,其中,机器码中包括由ARM指令序列得到的二进制机器码;将二进制机器码保存在所述应用程序的源代码中。其中,将二进制机器码保存在应用程序的源代码中,可以是根据二进制机器码生成一个数组,然后,将该二进制机器码以数组的形式保存在应用程序的源代码中。其中,数组例如为字节数组。
也就是说,将ARM指令序列,预先编译成机器码,并以字节数组的方式保存在应用程序的源代码中。
为了使应用程序在执行某项操作前,能够确定出是否是真实的终端设备上的操作,因此,可以在应用程序的源代码中预先添加如下功能代码,例如:在应用程序运行时将上述的数组赋予可执行权限,这样,控制应用程序执行某项操作前,首先执行上述S101和S102的方法的步骤,进而,可以检测出运行应用应用程序的载体是否为真实的终端设备,还是模拟器。
例如:应用程序执行某项操作为移动支付交易,则应用程序执行移动支付交易前,通过检测出是否为真实的终端设备,从而可以确保交易的安全性。
在以上描述中,由于ARM指定序列在被翻译成机器码时,会至少包括一段二进制的机器码,而安卓模拟器在运行二进制机器码时,会因指令长度、字节对齐等方面的不兼容而运行崩溃,或者出现错误的执行结果。而真实的终端设备在运行二进制的机器码时,可以正常运行,从而得到正确的预期的运行结果。这样,便可以根据执行结果来判断移动支付交易的操作是来自安卓模拟器还是真实的终端设备,因此,当确定来自安卓模拟器的非法操作时,可以终止交易,进而,确保了交易的安全性。
本发明实施例中,控制应用程序执行预设的ARM指令序列,可以通过预设的运行机制实现,具体可包括:控制应用程序中的主进程创建子进程,以通过所述子进程执行所述ARM指令序列;控制主进程监听子进程对ARM指令序列的执行结果,以根据ARM指令序列的执行结果,确定终端是否为模拟器,即:确定终端是模拟器还是真实的终端设备。
进一步地,控制主进程监听子进程对ARM指令序列的执行结果,以根据ARM指令序列的执行结果,确定终端是否为模拟器,包括:主进程监听到子进程运行崩溃,或者执行结果与预定运行结果不匹配时,确定终端是模拟器;当然,如果执行结果与预定运行结果匹配,则可以确定终端是真实的终端设备。
在以上描述中,由于安卓模拟器在执行预设的ARM指令序列时,可能会出现运行崩溃的现象,从而打断用户当前的操作,影响用户的使用体验,因此,本发明的实施例中,通过预设的运行机制,可以在运行崩溃时,进行有效的拦截,从而避免打断用户当前的操作,保证用户的使用体验。
具体来说,在执行预设的ARM指令序列时,应用程序的主进程可以创建一子进程,并在主进程中注册实现针对指定信号的自定义响应函数,该自定义响应函数会在指定信号引起运行崩溃现象时,将崩溃现象告知主进程,使得主进程对崩溃现象进行拦截,从而不会让用户感受到子进程中可能发生的崩溃现象。
具体的运行机制如下:
应用程序的主进程创建一子进程,并在主进程中注册实现针对SIGCHLD信号(即:指定信号)的自定义响应处理函数,该响应处理函数用于监听子进程。
在子进程中注册实现如下信号(如:SIGSEGV,SIGABRT,SIGFPE,SIGILL,SIGBUS)的自定义响应函数,该自定义响应函数用于让用户感知不到可能发生的子进程运行崩溃的现象。然后,在子进程中运行ARM指令序列,当出现运行崩溃时,便可以实现对如SIGSEGV信号所引起的崩溃现象的拦截。由此,不会让用户感受到子进程中发生的崩溃现象,提升了用户的使用体验。
类似地,可以实现针对SIGABRT,SIGFPE,SIGILL,SIGBUS等信号所引起的崩溃现象的拦截处理功能,此处不做赘述。
通过上述的实施例,可以通过ARM指令序列准确地检测出操作行为是否来自于可信的真实的终端设备,还是来自于非法的模拟器。但是如移动支付交易行为是在终端和服务器(如:移动交易支付平台的提供商,例如电信运营商、互联网厂商等)间进行的,应用程序在确定出执行主体是可信的真实的终端设备还是非法的模拟器之后,为了避免交易的继续,需要将结果上报给服务器。
然而,在上报过程中,有可能被恶意攻击者截获并篡改,那么整个检测过程也就失去了意义。因此,在本发明的一个实施例中,模拟器的检测方法中,在根据ARM指令序列的执行结果,确定终端是否为模拟器之后,该方法还包括:根据预设的加密方式对终端的类型的检测结果进行加密处理,得到加密文件;将加密文件发送给服务器。例如:接收服务器发送的加密方式;根据加密方式对检测结果进行加密处理,得到加密文件;将加密文件发送给服务器。
进一步地,加密方式为服务器从预设的多个加密方式中随机选择的任意加密方式。
可以理解的是,加密方式可以是服务器发送给终端的,也可以是服务器和终端预先约定好的。
采用上述加密方式对传输的数据进行加密后,将检测结果上报给服务器,从而,可以有效保证交易的安全性和可靠性。因此,本发明实施例的模拟器的检测方法的另一个实施例的详细步骤如图2所示,包括:第一步,移动支付交易平台动态下发一个加密方式给安卓终端App(即:应用程序)。也就是说,这个加密方式不是固定不变的,而是在多个备选的加密方式中随机选择并下发给安卓终端App的。接着,应用程序采用上述S101-S102的方式,确定出检测结果,其中,应用程序的子进程中执行预设的ARM指令序列之后,可能出现两种结果,需要针对这两种结果分别做相应的处理。
(1)得到一个计算值,子进程通过进程间通信机制,例如pipe,FIFO,消息队列,socket通信,共享内存,共享文件等进程间通信机制将该计算值传递给主进程。主进程检验该值是否正确。如果正确,则判定执行主体为真实安卓设备;否则,判定执行主体不是真实安卓设备,例如是安卓模拟器。
(2)子进程运行崩溃,主进程的SIGCHLD信号的自定义响应处理函数被自动调用,主进程判定执行主体不是真实安卓设备,而是安卓模拟器。
确定出检测结果后,主进程按照服务器(移动支付交易平台)发送的加密方式进行加密,将检测结果加密之后上传给服务器。
根据本发明实施例的模拟器的检测方法,通过执行包括有可检测运行应用程序的终端是否为模拟器的ARM指令序列,得到执行结果,由于模拟器和真实的终端设备在指令缓存机制、指令长度和字节对齐等方面的差异性,因此,可以根据执行结果的不同检测出终端是否为模拟器,具有检测准确性高的优点。
图3是根据本发明一个实施例的模拟器的检测装置的结构框图。如图3所示,根据本发明一个实施例的模拟器的检测装置,包括:执行模块310和检测模块320。
其中,执行模块310用于控制应用程序执行预设的ARM指令序列,所述ARM指令序列包括用于检测运行所述应用程序的终端的类型的运算指令。检测模块320用于根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器。
根据本发明实施例的模拟器的检测装置,通过执行包括有可检测运行应用程序的终端是否为模拟器的ARM指令序列,得到执行结果,进而,可以根据执行结果的不同检测出终端是否为模拟器,具有检测准确性高的优点。
需要说明的是,本发明实施例的模拟器的检测装置的具体实现方式与本发明实施例的模拟器的检测方法的具体实现方式类似,具体请参见方法部分的描述,为了减少冗余,具体此处不做赘述。
基于相同的发明构思,本发明又一个实施例中提供了一种电子设备,参见图4,所述电子设备具体包括如下内容:处理器401、存储器402、通信接口403和通信总线404;
其中,所述处理器401、存储器402、通信接口403通过所述通信总线404完成相互间的通信;所述通信接口303用于实现各设备之间的信息传输;
所述处理器401用于调用所述存储器402中的计算机程序,所述处理器执行所述计算机程序时实现上述模拟器的检测方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:控制应用程序执行预设的ARM指令序列,所述ARM指令序列包括用于检测运行所述应用程序的终端的类型的运算指令;根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器。
基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述模拟器的检测方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:控制应用程序执行预设的ARM指令序列,所述ARM指令序列包括用于检测运行所述应用程序的终端的类型的运算指令;根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例的方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例的或者实施例的某些部分所述的指标监控方法。
此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种模拟器的检测方法,其特征在于,所述方法包括:
控制应用程序执行预设的ARM指令序列,所述ARM指令序列包括用于检测运行所述应用程序的终端的类型的运算指令;
根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器。
2.根据权利要求1所述的模拟器的检测方法,其特征在于,在所述执行预设的ARM指令序列之前,所述方法还包括:
创建所述预设的ARM指令序列;
所述创建所述预设的ARM指令序列,包括:
编写用于执行算术和/或逻辑运算的汇编指令序列;
从所述汇编指令序列中选择任意目标指令,记录所述目标指令的地址;
根据所述目标指令的地址,将存储的所述目标指令替换为目标运算指令,以根据所述目标运算指令得到所述ARM指令序列,其中,所述目标运算指令是用于检测所述终端是否为模拟器的指令。
3.根据权利要求2所述的模拟器的检测方法,其特征在于,在得到所述ARM指令序列之后,所述方法还包括:
对所述ARM指令序列进行编辑,得到机器码,其中,所述机器码中包括由所述ARM指令序列编辑得到的二进制机器码;
将所述二进制机器码保存在所述应用程序的源代码中。
4.根据权利要求1所述的模拟器的检测方法,其特征在于,所述控制应用程序执行预设的ARM指令序列,包括:
控制所述应用程序中的主进程创建子进程,以通过所述子进程执行所述ARM指令序列;
控制所述主进程监听所述子进程对所述ARM指令序列的执行结果,以根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器。
5.根据权利要求4所述的模拟器的检测方法,其特征在于,所述控制主进程监听所述子进程对所述ARM指令序列的执行结果,以根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器,包括:
所述主进程监听到所述子进程运行崩溃,或者所述执行结果与预定运行结果不匹配时,确定所述终端是模拟器。
6.根据权利要求1所述的模拟器的检测方法,其特征在于,在根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器之后,所述方法还包括:
根据预设的加密方式对所述终端的类型的检测结果进行加密处理,得到加密文件;
将所述加密文件发送给所述服务器。
7.根据权利要求6所述的模拟器的检测方法,其特征在于,所述加密方式为所述服务器从预设的多个加密方式中随机选择的加密方式。
8.一种模拟器的检测装置,其特征在于,包括:
执行模块,用于控制应用程序执行预设的ARM指令序列,所述ARM指令序列包括用于检测运行所述应用程序的终端的类型的运算指令;
检测模块,用于根据所述ARM指令序列的执行结果,确定所述终端是否为模拟器。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现根据权利要求1至7任一所述的模拟器的检测方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现根据权利要求1至7任一所述的模拟器的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011015090.3A CN112288428A (zh) | 2020-09-24 | 2020-09-24 | 模拟器的检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011015090.3A CN112288428A (zh) | 2020-09-24 | 2020-09-24 | 模拟器的检测方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112288428A true CN112288428A (zh) | 2021-01-29 |
Family
ID=74421986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011015090.3A Pending CN112288428A (zh) | 2020-09-24 | 2020-09-24 | 模拟器的检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112288428A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918243A (en) * | 1996-01-30 | 1999-06-29 | International Business Machines Corporation | Computer mechanism for reducing DASD arm contention during parallel processing |
CN1877545A (zh) * | 2006-07-04 | 2006-12-13 | 浙江大学 | 一种嵌入式系统模拟器中的动态软件能耗测试方法 |
CN101881995A (zh) * | 2010-06-04 | 2010-11-10 | 四川大学 | 一种针对arm指令集的层次分类功耗测量方法 |
CN101894067A (zh) * | 2010-06-04 | 2010-11-24 | 四川大学 | 一种基于arm处理器的嵌入式软件能耗统计模型 |
CN102364433A (zh) * | 2011-06-24 | 2012-02-29 | 浙大网新科技股份有限公司 | 在ARM处理器上实现Wine构建工具移植的方法 |
CN103885814A (zh) * | 2014-03-20 | 2014-06-25 | 百度在线网络技术(北京)有限公司 | 在x86架构上运行ARM APK的模拟器装置和方法 |
CN107526628A (zh) * | 2017-09-30 | 2017-12-29 | 北京梆梆安全科技有限公司 | 结合底层指令和配置信息的模拟器检测方法及装置 |
CN107908952A (zh) * | 2017-10-25 | 2018-04-13 | 广州优视网络科技有限公司 | 识别真机和模拟器的方法、装置和终端 |
US20190124033A1 (en) * | 2017-10-25 | 2019-04-25 | Dropbox, Inc. | Delayed processing for arm policy determination for content management system messaging |
CN110457220A (zh) * | 2019-08-08 | 2019-11-15 | 北京智游网安科技有限公司 | 基于安卓系统的模拟器检测方法、智能终端及存储介质 |
CN110619210A (zh) * | 2019-08-27 | 2019-12-27 | 苏宁云计算有限公司 | 一种模拟器检测方法及系统 |
-
2020
- 2020-09-24 CN CN202011015090.3A patent/CN112288428A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918243A (en) * | 1996-01-30 | 1999-06-29 | International Business Machines Corporation | Computer mechanism for reducing DASD arm contention during parallel processing |
CN1877545A (zh) * | 2006-07-04 | 2006-12-13 | 浙江大学 | 一种嵌入式系统模拟器中的动态软件能耗测试方法 |
CN101881995A (zh) * | 2010-06-04 | 2010-11-10 | 四川大学 | 一种针对arm指令集的层次分类功耗测量方法 |
CN101894067A (zh) * | 2010-06-04 | 2010-11-24 | 四川大学 | 一种基于arm处理器的嵌入式软件能耗统计模型 |
CN102364433A (zh) * | 2011-06-24 | 2012-02-29 | 浙大网新科技股份有限公司 | 在ARM处理器上实现Wine构建工具移植的方法 |
CN103885814A (zh) * | 2014-03-20 | 2014-06-25 | 百度在线网络技术(北京)有限公司 | 在x86架构上运行ARM APK的模拟器装置和方法 |
CN107526628A (zh) * | 2017-09-30 | 2017-12-29 | 北京梆梆安全科技有限公司 | 结合底层指令和配置信息的模拟器检测方法及装置 |
CN107908952A (zh) * | 2017-10-25 | 2018-04-13 | 广州优视网络科技有限公司 | 识别真机和模拟器的方法、装置和终端 |
US20190124033A1 (en) * | 2017-10-25 | 2019-04-25 | Dropbox, Inc. | Delayed processing for arm policy determination for content management system messaging |
CN110457220A (zh) * | 2019-08-08 | 2019-11-15 | 北京智游网安科技有限公司 | 基于安卓系统的模拟器检测方法、智能终端及存储介质 |
CN110619210A (zh) * | 2019-08-27 | 2019-12-27 | 苏宁云计算有限公司 | 一种模拟器检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11687653B2 (en) | Methods and apparatus for identifying and removing malicious applications | |
EP2839406B1 (en) | Detection and prevention of installation of malicious mobile applications | |
CN101512512B (zh) | 利用软件名声的软件授权 | |
US7774595B2 (en) | Computer security apparatus and method using security input device driver | |
KR20170105353A (ko) | 전자장치 및 그 제어방법 | |
CN109740309B (zh) | 一种文件保护方法以及装置 | |
US20160014148A1 (en) | Web anomaly detection apparatus and method | |
US10733594B1 (en) | Data security measures for mobile devices | |
KR20090035587A (ko) | 악성 팝업 광고로부터의 사용자 보호 | |
CN112434306A (zh) | 可信度量方法,装置,系统,电子设备及存储介质 | |
CN116305290A (zh) | 一种系统日志安全检测方法及装置、电子设备及存储介质 | |
CN111259382A (zh) | 恶意行为识别方法、装置、系统和存储介质 | |
US7100205B2 (en) | Secure attention instruction central processing unit and system architecture | |
CN111953475B (zh) | 一种代码漏洞的修复方法及设备 | |
KR20090109640A (ko) | Usb 디바이스 보안 장치 및 방법 | |
CN112288428A (zh) | 模拟器的检测方法、装置、电子设备及存储介质 | |
KR20180028246A (ko) | 스미싱 메시지 검출 방법 및 이를 수행하는 단말과 검증 서버 | |
Lee et al. | Classification and analysis of security techniques for the user terminal area in the internet banking service | |
Msgna et al. | Secure application execution in mobile devices | |
CN114244600A (zh) | 一种干扰恶意程序的方法 | |
CN110516445B (zh) | 反检测恶意代码的识别方法、装置及存储介质 | |
JP7008879B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
CN114172720A (zh) | 一种密文攻击流量的检测方法及相关装置 | |
CN114257404A (zh) | 异常外联统计告警方法、装置、计算机设备和存储介质 | |
TW201629767A (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 |