应用程序进程的能力探测方法及装置制造方法及图纸

技术编号:17162065 阅读:27 留言:0更新日期:2018-02-01 20:21
本申请公开了应用程序进程的能力探测方法及装置,其中所述方法包括:启动被探测应用程序并执行应用程序流程;响应于被探测应用程序需要一能力,触发在内核空间探测相应能力的能力值;在内核空间搜集探测到的能力值并传到用户空间;响应于在用户空间接收到所述能力值,确定被探测应用程序的运行状态;响应于确定被探测应用程序已经退出运行,将所接收的能力值添加到被探测应用程序;响应于所接收的能力值添加到被探测应用程序,重新启动被探测应用程序并执行应用程序流程。本发明专利技术方法及装置无需重新编译内核即可自动探测进程的能力,提高了探测效率。

Ability detection methods and devices for application process

【技术实现步骤摘要】
应用程序进程的能力探测方法及装置
本申请涉及运行Linux系统的终端中的应用程序调试,尤其涉及应用程序进程的能力探测方法及装置。
技术介绍
随着移动设备的飞速发展,智能手机、平板电脑等移动设备在企业中的使用也是越来越广泛。在移动操作系统领域,利用Linux能力(capabilities)机制可以解决很多系统的安全性难题。在Linux系统中,对于应用程序,如果需要特殊能力,需要添加上能力才能正常运行。此外,为了系统安全,应用程序的能力需要被审查。只有明确了具体能力,才能结合应用程序的功能进行有针对性的审查。然而,在使用Linuxcapabilities机制时,探测进程的能力是一个不太好操作但是非常关键的环节。为了探测应用进程的能力,现有技术通常在内核(kernel)中添加调试信息,重新编译内核,然后手动执行应用程序,查看调试信息。如果调试信息并不满足要求,重新修改内核中的调试信息,然后再次编译内核,之后手动再次执行应用程序。现有技术的缺点在于,编译内核比较费时,不方便,工作量大;修改调试信息后,需要重新编译内核,如果代码有问题,编译出来的kernel启动时会导致内核崩溃;探测的能力的过程需要手动多次启动,繁琐且增加劳动力成本。
技术实现思路
为了克服现有技术中存在的不足,本专利技术要解决的技术问题是提供一种应用程序进程的能力探测方法及装置,其无需重新编译内核即可自动探测进程的能力。为解决上述技术问题,本专利技术的一种应用程序进程的能力探测方法,包括:启动被探测应用程序并执行应用程序流程;响应于被探测应用程序需要一能力,触发在内核空间探测相应能力的能力值;在内核空间搜集探测到的能力值并传到用户空间;响应于在用户空间接收到所述能力值,确定被探测应用程序的运行状态;响应于确定被探测应用程序已经退出运行,将所接收的能力值添加到被探测应用程序;响应于所接收的能力值添加到被探测应用程序,重新启动被探测应用程序并执行应用程序流程。作为本专利技术所述方法的改进,所述方法还包括:响应于确定被探测应用程序仍在运行,保存所接收的能力值,并继续执行被探测应用程序流程。作为本专利技术所述方法的另一种改进,在内核空间探测相应能力的能力值及在内核空间搜集探测到的能力值并传到用户空间通过加载进内核空间的ko模块执行。作为本专利技术所述方法的又一种改进,所述响应于被探测应用程序需要一能力,触发在内核空间探测相应能力的能力值包括:基于内核空间的能力检查机制在能力检查点之前把相应的能力值打印出来从而探测到相应的能力值。作为本专利技术所述方法的再一种改进,所接收的能力值通过setcap工具添加到被探测应用程序。为解决上述技术问题,本专利技术的应用程序进程的能力探测装置,包括:启动模块,用于启动被探测应用程序并执行应用程序流程;能力探测模块,用于响应于被探测应用程序需要一能力,在内核空间探测相应能力的能力值;能力搜集模块,用于在内核空间搜集来自所述能力探测模块的能力值并传给用户空间的能力接收模块;能力接收模块,用于响应于接收到所述能力值,在用户空间确定被探测应用程序的运行状态;及用于响应于确定被探测应用程序已经退出运行,将所接收的能力值添加到被探测应用程序;重启模块,用于响应于所接收的能力值添加到被探测应用程序,重新启动被探测应用程序并执行应用程序流程。作为本专利技术所述装置的改进,所述能力接收模块还响应于确定被探测应用程序仍在运行,保存所接收的能力值,继续执行被探测应用程序流程。作为本专利技术所述装置的另一种改进,所述能力探测模块和所述能力接收模块编译成ko模块并加载进内核空间。作为本专利技术所述装置的又一种改进,所述能力探测模块包括打印子模块,用于基于内核空间的能力检查机制,在能力检查点之前把相应的能力值打印出来从而探测到相应的能力值。作为本专利技术所述装置的再一种改进,所述能力接收模块使用setcap工具将所接收的能力值添加到被探测应用程序。为解决上述技术问题,本专利技术的有形计算机可读介质,包括用于执行本专利技术的应用程序进程的能力探测方法的计算机程序代码。为解决上述技术问题,本专利技术提供一种装置,包括至少一个处理器;及至少一个存储器,含有计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为利用所述至少一个处理器使得所述装置执行本专利技术的应用程序进程的能力探测方法的至少部分步骤。按照本专利技术,首先在内核中加载能力探测模块和能力搜集模块。通过进程监控程序,启动被测应用,并监控被测应用进程的运行状态。当应用进程需要能力时,通过系统调用机制会触发内核的能力探测模块,能力探测模块把探测到的能力传递给能力搜集模块。然后能力搜集模块会把相关能力信息发送给用户空间的进程监控程序的能力接收模块。通过进程监控程序把接收到的能力添加给被测应用进程,重新自动启动应用,如此循环。被测应用只需手动启动一次,后续即可自动触发能力探测流程,自动完成应用进程需要的所有能力的探测。本专利技术不需要更改系统内核,不需要频繁调试内核,大大提高了探测效率。结合附图阅读本专利技术实施方式的详细描述后,本专利技术的其它特点和优点将变得更加清楚。附图说明图1为根据本专利技术方法的一实施例的流程图。图2为根据本专利技术装置的一实施例的结构示意图。为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本专利技术所必要的细节,而省略其他细节。具体实施方式下面参照附图对本专利技术的实施方式和实施例进行详细说明。通过下面给出的详细描述,本专利技术的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本专利技术优选实施例的同时,它们仅为说明目的给出。在Linux系统中,关于进程能力,每个进程有三个和能力有关的位图:inheritable(I)、permitted(P)和effective(E),分别对应进程描述符task_struct结构体里面的cap_effective、cap_inheritable、cap_permitted,因此可以查看/proc/PID/status来查看进程的能力。其中,cap_effective表示当一个进程要进行某个特权操作时,操作系统会检查cap_effective的对应位是否有效。例如,如果一个进程要设置系统的时钟,Linux的内核就会检查cap_effective的CAP_SYS_TIME位(第25位)是否有效。cap_permitted表示进程能够使用的能力,在cap_permitted中可以包含cap_effective中没有的能力,这些能力是被进程自己临时放弃的,也可以说cap_effective是cap_permitted的一个子集。cap_inheritable表示能够被当前进程执行的程序继承的能力。运行Linux或类似系统的移动终端如手机包含用户空间和内核空间。图1示出了根据本专利技术的应用程序进程的能力探测方法的一实施例的流程图。在步骤S102,在用户空间启动进程监控程序,进程监控程序负责加载被探测应用程序,并且监控该应用程序的运行状态,与内核建立连接。在步骤S104,启动被探测应用程序并执行应用程序流程。在步骤S106,确定被探测应用程序是否需要能力。如果确定需要能力,则应用程序会退出执行,处理进行到步骤S108;否则,处理进行到步骤S150。在步骤S108,系统调用触发内核空间的能力检查机制,从而触本文档来自技高网...
应用程序进程的能力探测方法及装置

【技术保护点】
一种应用程序进程的能力探测方法,其特征在于,所述方法包括:启动被探测应用程序并执行应用程序流程;响应于被探测应用程序需要一能力,触发在内核空间探测相应能力的能力值;在内核空间搜集探测到的能力值并传到用户空间;响应于在用户空间接收到所述能力值,确定被探测应用程序的运行状态;响应于确定被探测应用程序已经退出运行,将所接收的能力值添加到被探测应用程序;响应于所接收的能力值添加到被探测应用程序,重新启动被探测应用程序并执行应用程序流程。

【技术特征摘要】
1.一种应用程序进程的能力探测方法,其特征在于,所述方法包括:启动被探测应用程序并执行应用程序流程;响应于被探测应用程序需要一能力,触发在内核空间探测相应能力的能力值;在内核空间搜集探测到的能力值并传到用户空间;响应于在用户空间接收到所述能力值,确定被探测应用程序的运行状态;响应于确定被探测应用程序已经退出运行,将所接收的能力值添加到被探测应用程序;响应于所接收的能力值添加到被探测应用程序,重新启动被探测应用程序并执行应用程序流程。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于确定被探测应用程序仍在运行,保存所接收的能力值,并继续执行被探测应用程序流程。3.根据权利要求1或2所述的方法,其特征在于,在内核空间探测相应能力的能力值及在内核空间搜集探测到的能力值并传到用户空间通过加载进内核空间的ko模块执行。4.根据权利要求1或2所述的方法,其特征在于,所述响应于被探测应用程序需要一能力,触发在内核空间探测相应能力的能力值包括:基于内核空间的能力检查机制在能力检查点之前把相应的能力值打印出来从而探测到相应的能力值。5.根据权利要求1所述的方法,其特征在于,所接收的能力值通过setcap工具添加到被探测应用程序。6.一种应用程序进程的能力...

【专利技术属性】
技术研发人员:冀胜利
申请(专利权)人:北京元心科技有限公司
类型:发明
国别省市:北京,11

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

1