一种应用程序检测方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:24168137 阅读:42 留言:0更新日期:2020-05-16 02:05
本发明专利技术实施例提出的一种应用程序检测方法、装置、计算机设备及存储介质,应用于安装有第一应用程序和第二应用程序的终端上,第一应用程序和第二应用程序之间预先建立有用于进程间通信的进程间通信链路,在对第一应用程序进行检测时,第一应用程序接收到检测指令获取自身持有的本机识别码,并通过进程间通信链路获取第二应用程序持有的本机识别码,将获取的两个本机识别码进行比较,判断是否一致,若不一致,就确定第一应用程序是被能伪装机型的应用程序启动的分身应用程序。本方案通过终端中的第二应用程序辅助完成对第一应用程序的检测,避免了现有技术中完全通过第一应用程序内部进程进行检测时,多开软件对检测函数进行hook造成的检测失效。

【技术实现步骤摘要】
一种应用程序检测方法、装置、计算机设备及存储介质
本专利技术实施例涉及移动终端
,具体涉及一种应用程序检测方法、装置、计算机设备及存储介质。
技术介绍
随着互联网技术的飞速发展,用户对于同一系统下运行多个相互独立的应用程序的需求非常强烈,尤其是各种社交应用,已经成为了移动互联网时代下人们必不可少的联络工具。用户在使用这些社交应用时,大多数人都是工作、生活的应用账号分开设置,以便于不被工作影响生活。因此,具有创建分身应用程序的功能的应用程序(下称多开软件)应运而生,多开软件可以通过在同一终端中创建应用程序的分身应用程序来帮助用户在同一个终端上使用多账号在线。例如,通过创建某社交应用程序的分身应用程序,用户可以在一部手机上,同时使用主号或者小号登陆该社交应用程序,主号与小号的使用互不影响,满足了大多数用户工作与生活信息的分开处理需求。但是,目前很多应用程序供应商不希望自家的应用程序被多开软件多开,例如抢票应用、投票应用等等,若这些应用程序被多开,则会出现一些类似刷票的不公平竞争行为,为了防止这种不公平竞争行为的发生,出现了一些对应用程序进行检测的方法,通过对检测到的分身应用程序进行处理来减少分身应用程序,例如:方法1:通过调用context.GetFilesDir()函数进行应用程序的数据文件夹的路径检测,若检测到路径异常,则确定存在应用程序为被多开软件创建的分身应用程序,但是,有些多开软件会hook住context.GetFilesDir()函数,使得被检测的应用程序的路径没有任何异常,从而导致通过调用context.getFilesDir()函数无法检测到被多开软件创建的分身应用程序。方法2:通过proc/self/maps文件对多开软件进行检测,为多开软件包名设置一个黑名单,检测终端的maps文件中是否包含有黑名单中的多开软件包名,如果有,则确定终端中存在多开软件,但对有些多开软件,maps文件中并没有自己的包名,因此无法通过maps文件检测到这些多开软件。方法3:通过获取安装的应用程序的包名进行判断,但多数多开软件会hook获取包名的函数,从而导致这种方式也失效。综上,现有检测应用程序的方法通常都是在待检测应用进程内部通过各种系统API或进程信息进行检测,而由于被双开的待检测应用的进程是由多开软件创建的,可以说该进程已经不可信,多开软件会通过各种技术方案绕过这些检测,导致现有方案失效。
技术实现思路
为了解决上述技术问题或者至少部分地解决上述技术问题,本专利技术实施例提供了一种应用程序检测方法。有鉴于此,第一方面,本专利技术实施例提供一种应用程序检测方法,应用于安装有第一应用程序和第二应用程序的终端上,所述第一应用程序和所述第二应用程序之间预先建立有用于进程间通信的进程间通信链路,所述方法包括:所述第一应用程序接收到检测指令时,获取自身持有的本机识别码;所述第一应用程序通过所述进程间通信链路,获取所述第二应用程序持有的本机识别码;所述第一应用程序比较自身持有的本机识别码与所述第二应用程序持有的本机识别码是否相同;若不相同,则确定所述第一应用程序是被能伪装机型的应用程序创建的分身应用程序;若相同,则确定所述第一应用程序为非分身应用程序。在一种可能的实现方式中,所述第一应用程序通过下述方式持有本机识别码:所述第一应用程序调用预设的系统API函数,获取本机识别码,其中,所述系统API函数为用于获取终端的硬件信息的函数;所述第一应用程序将获取到的所述本机识别码保存到本地,并作为自身持有的本机识别码。在一种可能的实现方式中,所述第一应用程序通过所述进程间通信链路,获取所述第二应用程序持有的本机识别码,包括:所述第一应用程序调用所述第二应用程序中预先设置的获取识别码功能,所述获取识别码功能用于向所述第一应用程序提供所述第二应用程序持有的本机识别码;所述第一应用程序通过所述获取识别码功能获取所述第二应用程序持有的本机识别码。在一种可能的实现方式中,所述方法还包括:在所述第一应用程序比较自身持有的本机识别码与所述第二应用程序持有的本机识别码是否相同之前,检测所述第一应用程序是否获取到所述第二应用程序持有的本机识别码;若没有获取到,则判定所第一应用程序为非分身应用程序;若获取到,则执行所述第一应用程序比较自身持有的本机识别码与所述第二应用程序持有的本机识别码是否相同的步骤。在一种可能的实现方式中,所述方法还包括:所述第一应用程序将检测结果存储至终端;在所述第一应用程序获取自身持有的本机识别码之前,检测所述终端中是否存储有所述第一应用程序的检测结果;若所述终端中存储有所述第一应用程序的检测结果,则获取所述终端中存储的所述第一应用程序的检测结果;若所述终端中没有存储所述第一应用程序的检测结果,则执行所述第一应用程序获取自身持有的本机识别码的步骤。在一种可能的实现方式中,所述方法还包括:确定所述第一应用程序是被能伪装机型的应用程序创建的分身应用程序后,执行如下操作中的任意一种或多种:关闭所述第一应用程序的预设功能、关闭所述第一应用程序、结束所述第一应用程序的进程。第二方面,本专利技术实施例还提供了一种应用程序检测装置,应用于安装有第一应用程序和第二应用程序的终端上,所述第一应用程序和所述第二应用程序之间预先建立有用于进程间通信的进程间通信链路,所述装置包括:第一获取模块,用于所述第一应用程序接收到检测指令时,获取自身持有的本机识别码;第二获取模块,用于所述第一应用程序通过所述进程间通信链路,获取所述第二应用程序持有的本机识别码;比较模块,用于所述第一应用程序比较自身持有的本机识别码与所述第二应用程序持有的本机识别码是否相同;第一确定模块,用于若所述第一应用程序比较自身持有的本机识别码与所述第二应用程序持有的本机识别码不相同,则确定所述第一应用程序是被能伪装机型的应用程序创建的分身应用程序;第二确定模块,用于若所述第一应用程序比较自身持有的本机识别码与所述第二应用程序持有的本机识别码相同,则确定所述第一应用程序为非分身应用程序。在一种可能的实现方式中,所述第一应用程序通过下述方式持有本机识别码:所述第一应用程序调用预设的系统API函数,获取本机识别码,其中,所述系统API函数为用于获取终端的硬件信息的函数所述第一应用程序将获取到的所述本机识别码保存到本地,并作为自身持有的本机识别码。在一种可能的实现方式中,所述第二获取模块,具体用于:所述第一应用程序调用所述第二应用程序中预先设置的获取识别码接口,所述获取识别码接口用于向所述第一应用程序提供所述第二应用程序持有的本机识别码;所述第一应用程序通过所述获取识别码接口获取所述第二应用程序持有的本机识别码。在一种可能的实现方式中,,所述装置还包括:第一检测模块,具体用于:在所述第一应用程序比较自身持有的本机识别码本文档来自技高网
...

【技术保护点】
1.一种应用程序检测方法,其特征在于,应用于安装有第一应用程序和第二应用程序的终端上,所述第一应用程序和所述第二应用程序之间预先建立有用于进程间通信的进程间通信链路,所述方法包括:/n所述第一应用程序接收到检测指令时,获取自身持有的本机识别码;/n所述第一应用程序通过所述进程间通信链路,获取所述第二应用程序持有的本机识别码;/n所述第一应用程序比较自身持有的本机识别码与所述第二应用程序持有的本机识别码是否相同;/n若不相同,则确定所述第一应用程序是被能伪装机型的应用程序创建的分身应用程序;/n若相同,则确定所述第一应用程序为非分身应用程序。/n

【技术特征摘要】
1.一种应用程序检测方法,其特征在于,应用于安装有第一应用程序和第二应用程序的终端上,所述第一应用程序和所述第二应用程序之间预先建立有用于进程间通信的进程间通信链路,所述方法包括:
所述第一应用程序接收到检测指令时,获取自身持有的本机识别码;
所述第一应用程序通过所述进程间通信链路,获取所述第二应用程序持有的本机识别码;
所述第一应用程序比较自身持有的本机识别码与所述第二应用程序持有的本机识别码是否相同;
若不相同,则确定所述第一应用程序是被能伪装机型的应用程序创建的分身应用程序;
若相同,则确定所述第一应用程序为非分身应用程序。


2.根据权利要求1所述的方法,其特征在于,所述第一应用程序通过下述方式持有本机识别码:
所述第一应用程序调用预设的系统API函数,获取本机识别码,其中,所述系统API函数为用于获取终端的硬件信息的函数所述第一应用程序将获取到的所述本机识别码保存到本地,并作为自身持有的本机识别码。


3.根据权利要求1所述的方法,其特征在于,所述第一应用程序通过所述进程间通信链路,获取所述第二应用程序持有的本机识别码,包括:
所述第一应用程序调用所述第二应用程序中预先设置的获取识别码接口,所述获取识别码接口用于向所述第一应用程序提供所述第二应用程序持有的本机识别码;
所述第一应用程序通过所述获取识别码接口获取所述第二应用程序持有的本机识别码。


4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一应用程序比较自身持有的本机识别码与所述第二应用程序持有的本机识别码是否相同之前,检测所述第一应用程序是否获取到所述第二应用程序持有的本机识别码;
若没有获取到,则判定所第一应用程序为非分身应用程序;
若获取到,则执行所述第一应用程序比较自身持有的本机识别码与所述第二应用程序持有的本机识别码是否相同的步骤。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一应用程序将检测结果存储至终端;
在所述第一应用程序获取自身持有的本机识别码之前,所述第一应用程序检测所述终端中是否存储有所述第一应用程序的检测结果;
若所述终端中存储有所述第...

【专利技术属性】
技术研发人员:孙学伟
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1