应用程序启动时的验证方法、装置、电子设备及存储介质制造方法及图纸

技术编号:24613645 阅读:14 留言:0更新日期:2020-06-24 01:13
本申请实施例提供了一种应用程序启动时的验证方法、装置、电子设备及存储介质。该方法包括:在接收到对应用程序的启动请求时,通过钩子函数监控针对应用程序的Provider方法的调用请求;在监控到针对应用程序的Provider方法的调用请求时,拦截调用请求,并将用于启动应用程序的目标包名作为调用请求的响应信息;基于目标包名对应用程序进行身份验证。在本申请实施例中,由于会将用于启动应用程序的目标包名作为调用请求的响应信息,这样系统就会基于返回的目标包名对应用程序进行身份验证,此时验证的包名是一致的,避免了出现验证错误,保证了应用程序可以正常启动。

Verification methods, devices, electronic devices and storage media at application startup

【技术实现步骤摘要】
应用程序启动时的验证方法、装置、电子设备及存储介质
本申请涉及计算机
,具体而言,本专利技术涉及一种应用程序启动时的验证方法、装置、电子设备及存储介质。
技术介绍
在生活中,用户有时候需要在一个终端设备中开启某个应用程序的分身,来实现同时可以登录某个应用程序的不同账号,在实现这一功能时,对于应用Android(安卓)系统的终端设备来说,首先需要将真实Activity替换为分身应用程序的坑位Activity,然后再将坑位Activity还原为真实Activity来实现分身应用程序的启动。然而,在完成Activity替换后分身应用程序依然无法运行,这是因为Activity在启动时会读SettingProvider,并基于该读取操作获取的包名对分身应用程序进行系统验证,但是在AndroidP系统中,由于Provider的获取时机变了,导致在将分身应用程序的包名替换为用于启动分身应用程序的目标包之前就获取到了Provider,也就是说获取的包名为替换前的包名,进而在验证的时候产生校验错误。
技术实现思路
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请提供的技术方案如下:第一方面,本申请实施例提供一种应用程序启动时的验证方法,该验证方法包括:在接收到对应用程序的启动请求时,通过钩子函数监控针对应用程序的Provider(提供者)方法的调用请求;在监控到针对应用程序的Provider方法的调用请求时,拦截调用请求,并将用于启动应用程序的目标包名作为调用请求的响应信息;基于目标包名对应用程序进行身份验证。在本申请实施例中,通过钩子函数监控针对应用程序的Provider方法的调用请求之后,方法还包括:确定是否存储有应用程序的包名;若存在,则删除存储的应用程序的包名。在本申请实施例中,若应用程序为分身应用程序,目标包名为分身应用程序对应的原应用程序的包名。在本申请实施例中,基于目标包名对应用程序进行身份验证,包括:基于目标包名和系统为分身应用程序对应的原应用程序分配的包名,对分身应用程序进行身份验证。第二方面,本申请实施例提供一种应用程序启动时的验证装置,该验证装置包括:调用请求监控模块,用于在接收到对应用程序的启动请求时,通过钩子函数监控针对应用程序的Provider方法的调用请求;调用请求处理模块,用于在监控到针对应用程序的Provider方法的调用请求时,拦截调用请求,并将用于启动应用程序的目标包名作为调用请求的响应信息;身份验证模块,用于基于目标包名对应用程序进行身份验证。在本申请实施例中,用请求监控模块还用于:在调用请求监控模块在通过钩子函数监控针对应用程序的Provider方法的调用请求之后,确定是否存储有身应用程序的包名;若存在,则删除存储的应用程序的包名。在本申请实施例中,若应用程序为分身应用程序,目标包名为分身应用程序对应的原应用程序的包名。在本申请实施例中,身份验证模块基于目标包名对应用程序进行身份验证时,具体用于:基于目标包名和系统为分身应用程序对应的原应用程序分配的包名,对分身应用程序进行身份验证。第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器;存储器,用于存储计算机操作指令;处理器,用于通过调用计算机操作指令,执行上述第一方面实施例所示的方法。第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,存储介质存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行上述第一方面实施例所示的方法。本申请实施例提供的技术方案带来的有益效果是:在本申请实施例中,会监控针对应用程序的Provider方法的调用请求,并拦截该调用请求,并将用于启动应用程序的目标包名作为调用请求的响应信息返回,这样就会基于返回的目标包名对应用程序进行身份验证,此时验证的包名是一致的,避免了出现验证错误,保证了应用程序可以正常启动。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。图1为本申请实施例提供的一种应用程序启动时的验证方法的流程示意图;图2为本申请实施例提供的一种应用程序启动时的验证装置的结构示意图;图3为本申请实施例提供的一种电子设备的结构示意图。具体实施方式下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本专利技术的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。在实际应用中,会采用一些应用程序来开启某个应用程序的分身,如采用分身大师应用程序开启某个应用程序的分身应用程序,并且由于分身大师应用程序是一个对framework(框架)侵入性较高的插件化框架,因此可以直接运行用户分身的应用,但是也由于分身大师应用程序做了多处hook,对系统的侵入性也就会较高,一旦系统更新后,且framework层的系统接口做了更改,就可能导致分身无法运行。另外,在开启某个应用程序的分身应用程序时,在Activity组件参数替换后会读SettingProvider,在读取时系统会做包名校验,最终由于校验结果不一致而抛出异常,导致分身应用程序无法运行。基于这个问题,在AndroidO系统上时由于使用了hookAMS的getProvider以及替换ActivityThread中的mProviderMap对象的方式,可以拦截住对于系统Provider的读取,完成包括包名等参数的替换从而实现绕过验证。其中,这里的参数还可以包括UID(useridentifoer,用户标识符)等参数。但在AndroidP系统中,由于Provider的获取时机变了,导致分身应用程序在在将分身应用程序的包名替换为用于启动分身应用程序的目标包之前,就获取到了系统Provider对应的IContentProvider对象,进而调用的时候就会产生校验的错误,分身应用程序无法运行。基于此,本申请的实施例提供一种应用程序启动时的验证方法。为使本申请的目的、技术方案和优点更加清本文档来自技高网
...

【技术保护点】
1.一种应用程序启动时的验证方法,其特征在于,所述验证方法包括:/n在接收到对应用程序的启动请求时,通过钩子函数监控针对所述应用程序的提供者Provider方法的调用请求;/n在监控到针对所述应用程序的Provider方法的调用请求时,拦截所述调用请求,并将用于启动所述应用程序的目标包名作为所述调用请求的响应信息;/n基于所述目标包名对所述应用程序进行身份验证。/n

【技术特征摘要】
1.一种应用程序启动时的验证方法,其特征在于,所述验证方法包括:
在接收到对应用程序的启动请求时,通过钩子函数监控针对所述应用程序的提供者Provider方法的调用请求;
在监控到针对所述应用程序的Provider方法的调用请求时,拦截所述调用请求,并将用于启动所述应用程序的目标包名作为所述调用请求的响应信息;
基于所述目标包名对所述应用程序进行身份验证。


2.根据权利要求1所述的方法,其特征在于,所述通过钩子函数监控针对所述应用程序的Provider方法的调用请求之后,所述方法还包括:
确定是否存储有所述应用程序的包名;
若存在,则删除存储的所述应用程序的包名。


3.根据权利要求1或2所述的方法,其特征在于,若所述应用程序为分身应用程序,所述目标包名为所述分身应用程序对应的原应用程序的包名。


4.根据权利要求3所述的方法,其特征在于,所述基于所述目标包名对所述应用程序进行身份验证,包括:
基于所述目标包名和系统为所述分身应用程序对应的原应用程序分配的包名,对所述分身应用程序进行身份验证。


5.一种应用程序启动时的验证装置,其特征在于,所述验证装置包括:
调用请求监控模块,用于在接收到对应用程序的启动请求时,通过钩子函数监控针对所述应用程序的Provider方法的调用请求;
调用请求处理模块,用于在监控到针对所述应用程序的Provider方法的调用请求时,拦截所述调...

【专利技术属性】
技术研发人员:张晓
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京;11

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

1